Files
Linux/include/linux/c2port.h
T
Levin, Alexander (Sasha Levin) 4950276672 kmemcheck: remove annotations
Patch series "kmemcheck: kill kmemcheck", v2.

As discussed at LSF/MM, kill kmemcheck.

KASan is a replacement that is able to work without the limitation of
kmemcheck (single CPU, slow).  KASan is already upstream.

We are also not aware of any users of kmemcheck (or users who don't
consider KASan as a suitable replacement).

The only objection was that since KASAN wasn't supported by all GCC
versions provided by distros at that time we should hold off for 2
years, and try again.

Now that 2 years have passed, and all distros provide gcc that supports
KASAN, kill kmemcheck again for the very same reasons.

This patch (of 4):

Remove kmemcheck annotations, and calls to kmemcheck from the kernel.

[[email protected]: correctly remove kmemcheck call from dma_map_sg_attrs]
  Link: http://lkml.kernel.org/r/[email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
Cc: Alexander Potapenko <[email protected]>
Cc: Eric W. Biederman <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: Pekka Enberg <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Tim Hansen <[email protected]>
Cc: Vegard Nossum <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2017-11-15 18:21:04 -08:00

63 lines
1.5 KiB
C

/*
* Silicon Labs C2 port Linux support
*
* Copyright (c) 2007 Rodolfo Giometti <[email protected]>
* Copyright (c) 2007 Eurotech S.p.A. <[email protected]>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation
*/
#define C2PORT_NAME_LEN 32
struct device;
/*
* C2 port basic structs
*/
/* Main struct */
struct c2port_ops;
struct c2port_device {
unsigned int access:1;
unsigned int flash_access:1;
int id;
char name[C2PORT_NAME_LEN];
struct c2port_ops *ops;
struct mutex mutex; /* prevent races during read/write */
struct device *dev;
void *private_data;
};
/* Basic operations */
struct c2port_ops {
/* Flash layout */
unsigned short block_size; /* flash block size in bytes */
unsigned short blocks_num; /* flash blocks number */
/* Enable or disable the access to C2 port */
void (*access)(struct c2port_device *dev, int status);
/* Set C2D data line as input/output */
void (*c2d_dir)(struct c2port_device *dev, int dir);
/* Read/write C2D data line */
int (*c2d_get)(struct c2port_device *dev);
void (*c2d_set)(struct c2port_device *dev, int status);
/* Write C2CK clock line */
void (*c2ck_set)(struct c2port_device *dev, int status);
};
/*
* Exported functions
*/
extern struct c2port_device *c2port_device_register(char *name,
struct c2port_ops *ops, void *devdata);
extern void c2port_device_unregister(struct c2port_device *dev);