mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-26 06:33:19 -04:00
Merge branch 'master' into next
This commit is contained in:
commit
c84d6efd36
2774 changed files with 122719 additions and 47113 deletions
|
|
@ -126,6 +126,7 @@ header-y += nfs_mount.h
|
|||
header-y += nl80211.h
|
||||
header-y += param.h
|
||||
header-y += pci_regs.h
|
||||
header-y += perf_event.h
|
||||
header-y += pfkeyv2.h
|
||||
header-y += pg.h
|
||||
header-y += phantom.h
|
||||
|
|
@ -364,6 +365,7 @@ unifdef-y += utsname.h
|
|||
unifdef-y += videodev2.h
|
||||
unifdef-y += videodev.h
|
||||
unifdef-y += virtio_config.h
|
||||
unifdef-y += virtio_ids.h
|
||||
unifdef-y += virtio_blk.h
|
||||
unifdef-y += virtio_net.h
|
||||
unifdef-y += virtio_9p.h
|
||||
|
|
|
|||
|
|
@ -334,9 +334,12 @@ enum {
|
|||
SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */
|
||||
|
||||
/* SETFEATURE Sector counts for SATA features */
|
||||
SATA_AN = 0x05, /* Asynchronous Notification */
|
||||
SATA_DIPM = 0x03, /* Device Initiated Power Management */
|
||||
SATA_FPDMA_AA = 0x02, /* DMA Setup FIS Auto-Activate */
|
||||
SATA_FPDMA_OFFSET = 0x01, /* FPDMA non-zero buffer offsets */
|
||||
SATA_FPDMA_AA = 0x02, /* FPDMA Setup FIS Auto-Activate */
|
||||
SATA_DIPM = 0x03, /* Device Initiated Power Management */
|
||||
SATA_FPDMA_IN_ORDER = 0x04, /* FPDMA in-order data delivery */
|
||||
SATA_AN = 0x05, /* Asynchronous Notification */
|
||||
SATA_SSP = 0x06, /* Software Settings Preservation */
|
||||
|
||||
/* feature values for SET_MAX */
|
||||
ATA_SET_MAX_ADDR = 0x00,
|
||||
|
|
|
|||
|
|
@ -397,7 +397,7 @@ struct atmdev_ops { /* only send is required */
|
|||
int (*getsockopt)(struct atm_vcc *vcc,int level,int optname,
|
||||
void __user *optval,int optlen);
|
||||
int (*setsockopt)(struct atm_vcc *vcc,int level,int optname,
|
||||
void __user *optval,int optlen);
|
||||
void __user *optval,unsigned int optlen);
|
||||
int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
|
||||
int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags);
|
||||
void (*phy_put)(struct atm_dev *dev,unsigned char value,
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@ enum rq_cmd_type_bits {
|
|||
enum {
|
||||
REQ_LB_OP_EJECT = 0x40, /* eject request */
|
||||
REQ_LB_OP_FLUSH = 0x41, /* flush request */
|
||||
REQ_LB_OP_DISCARD = 0x42, /* discard sectors */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -261,7 +260,6 @@ typedef void (request_fn_proc) (struct request_queue *q);
|
|||
typedef int (make_request_fn) (struct request_queue *q, struct bio *bio);
|
||||
typedef int (prep_rq_fn) (struct request_queue *, struct request *);
|
||||
typedef void (unplug_fn) (struct request_queue *);
|
||||
typedef int (prepare_discard_fn) (struct request_queue *, struct request *);
|
||||
|
||||
struct bio_vec;
|
||||
struct bvec_merge_data {
|
||||
|
|
@ -313,6 +311,7 @@ struct queue_limits {
|
|||
unsigned int alignment_offset;
|
||||
unsigned int io_min;
|
||||
unsigned int io_opt;
|
||||
unsigned int max_discard_sectors;
|
||||
|
||||
unsigned short logical_block_size;
|
||||
unsigned short max_hw_segments;
|
||||
|
|
@ -340,7 +339,6 @@ struct request_queue
|
|||
make_request_fn *make_request_fn;
|
||||
prep_rq_fn *prep_rq_fn;
|
||||
unplug_fn *unplug_fn;
|
||||
prepare_discard_fn *prepare_discard_fn;
|
||||
merge_bvec_fn *merge_bvec_fn;
|
||||
prepare_flush_fn *prepare_flush_fn;
|
||||
softirq_done_fn *softirq_done_fn;
|
||||
|
|
@ -460,6 +458,7 @@ struct request_queue
|
|||
#define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */
|
||||
#define QUEUE_FLAG_IO_STAT 15 /* do IO stats */
|
||||
#define QUEUE_FLAG_CQ 16 /* hardware does queuing */
|
||||
#define QUEUE_FLAG_DISCARD 17 /* supports DISCARD */
|
||||
|
||||
#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
|
||||
(1 << QUEUE_FLAG_CLUSTER) | \
|
||||
|
|
@ -591,6 +590,7 @@ enum {
|
|||
#define blk_queue_flushing(q) ((q)->ordseq)
|
||||
#define blk_queue_stackable(q) \
|
||||
test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags)
|
||||
#define blk_queue_discard(q) test_bit(QUEUE_FLAG_DISCARD, &(q)->queue_flags)
|
||||
|
||||
#define blk_fs_request(rq) ((rq)->cmd_type == REQ_TYPE_FS)
|
||||
#define blk_pc_request(rq) ((rq)->cmd_type == REQ_TYPE_BLOCK_PC)
|
||||
|
|
@ -929,6 +929,8 @@ extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int);
|
|||
extern void blk_queue_max_phys_segments(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
|
||||
extern void blk_queue_max_discard_sectors(struct request_queue *q,
|
||||
unsigned int max_discard_sectors);
|
||||
extern void blk_queue_logical_block_size(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_physical_block_size(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_alignment_offset(struct request_queue *q,
|
||||
|
|
@ -955,7 +957,6 @@ extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *);
|
|||
extern void blk_queue_dma_alignment(struct request_queue *, int);
|
||||
extern void blk_queue_update_dma_alignment(struct request_queue *, int);
|
||||
extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *);
|
||||
extern void blk_queue_set_discard(struct request_queue *, prepare_discard_fn *);
|
||||
extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *);
|
||||
extern void blk_queue_rq_timeout(struct request_queue *, unsigned int);
|
||||
extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev);
|
||||
|
|
@ -1080,25 +1081,37 @@ static inline unsigned int queue_physical_block_size(struct request_queue *q)
|
|||
return q->limits.physical_block_size;
|
||||
}
|
||||
|
||||
static inline int bdev_physical_block_size(struct block_device *bdev)
|
||||
{
|
||||
return queue_physical_block_size(bdev_get_queue(bdev));
|
||||
}
|
||||
|
||||
static inline unsigned int queue_io_min(struct request_queue *q)
|
||||
{
|
||||
return q->limits.io_min;
|
||||
}
|
||||
|
||||
static inline int bdev_io_min(struct block_device *bdev)
|
||||
{
|
||||
return queue_io_min(bdev_get_queue(bdev));
|
||||
}
|
||||
|
||||
static inline unsigned int queue_io_opt(struct request_queue *q)
|
||||
{
|
||||
return q->limits.io_opt;
|
||||
}
|
||||
|
||||
static inline int bdev_io_opt(struct block_device *bdev)
|
||||
{
|
||||
return queue_io_opt(bdev_get_queue(bdev));
|
||||
}
|
||||
|
||||
static inline int queue_alignment_offset(struct request_queue *q)
|
||||
{
|
||||
if (q && q->limits.misaligned)
|
||||
if (q->limits.misaligned)
|
||||
return -1;
|
||||
|
||||
if (q && q->limits.alignment_offset)
|
||||
return q->limits.alignment_offset;
|
||||
|
||||
return 0;
|
||||
return q->limits.alignment_offset;
|
||||
}
|
||||
|
||||
static inline int queue_sector_alignment_offset(struct request_queue *q,
|
||||
|
|
@ -1108,6 +1121,19 @@ static inline int queue_sector_alignment_offset(struct request_queue *q,
|
|||
& (q->limits.io_min - 1);
|
||||
}
|
||||
|
||||
static inline int bdev_alignment_offset(struct block_device *bdev)
|
||||
{
|
||||
struct request_queue *q = bdev_get_queue(bdev);
|
||||
|
||||
if (q->limits.misaligned)
|
||||
return -1;
|
||||
|
||||
if (bdev != bdev->bd_contains)
|
||||
return bdev->bd_part->alignment_offset;
|
||||
|
||||
return q->limits.alignment_offset;
|
||||
}
|
||||
|
||||
static inline int queue_dma_alignment(struct request_queue *q)
|
||||
{
|
||||
return q ? q->dma_alignment : 511;
|
||||
|
|
|
|||
|
|
@ -198,6 +198,7 @@ extern int blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
|
|||
char __user *arg);
|
||||
extern int blk_trace_startstop(struct request_queue *q, int start);
|
||||
extern int blk_trace_remove(struct request_queue *q);
|
||||
extern void blk_trace_remove_sysfs(struct device *dev);
|
||||
extern int blk_trace_init_sysfs(struct device *dev);
|
||||
|
||||
extern struct attribute_group blk_trace_attr_group;
|
||||
|
|
@ -211,6 +212,7 @@ extern struct attribute_group blk_trace_attr_group;
|
|||
# define blk_trace_startstop(q, start) (-ENOTTY)
|
||||
# define blk_trace_remove(q) (-ENOTTY)
|
||||
# define blk_add_trace_msg(q, fmt, ...) do { } while (0)
|
||||
# define blk_trace_remove_sysfs(dev) do { } while (0)
|
||||
static inline int blk_trace_init_sysfs(struct device *dev)
|
||||
{
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ extern void cgroup_exit(struct task_struct *p, int run_callbacks);
|
|||
extern int cgroupstats_build(struct cgroupstats *stats,
|
||||
struct dentry *dentry);
|
||||
|
||||
extern struct file_operations proc_cgroup_operations;
|
||||
extern const struct file_operations proc_cgroup_operations;
|
||||
|
||||
/* Define the enumeration of all cgroup subsystems */
|
||||
#define SUBSYS(_x) _x ## _subsys_id,
|
||||
|
|
|
|||
|
|
@ -132,11 +132,8 @@ struct cn_callback_id {
|
|||
};
|
||||
|
||||
struct cn_callback_data {
|
||||
void (*destruct_data) (void *);
|
||||
void *ddata;
|
||||
|
||||
void *callback_priv;
|
||||
void (*callback) (struct cn_msg *);
|
||||
struct sk_buff *skb;
|
||||
void (*callback) (struct cn_msg *, struct netlink_skb_parms *);
|
||||
|
||||
void *free;
|
||||
};
|
||||
|
|
@ -167,11 +164,11 @@ struct cn_dev {
|
|||
struct cn_queue_dev *cbdev;
|
||||
};
|
||||
|
||||
int cn_add_callback(struct cb_id *, char *, void (*callback) (struct cn_msg *));
|
||||
int cn_add_callback(struct cb_id *, char *, void (*callback) (struct cn_msg *, struct netlink_skb_parms *));
|
||||
void cn_del_callback(struct cb_id *);
|
||||
int cn_netlink_send(struct cn_msg *, u32, gfp_t);
|
||||
|
||||
int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, void (*callback)(struct cn_msg *));
|
||||
int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, void (*callback)(struct cn_msg *, struct netlink_skb_parms *));
|
||||
void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id);
|
||||
|
||||
int queue_cn_work(struct cn_callback_entry *cbq, struct work_struct *work);
|
||||
|
|
|
|||
|
|
@ -291,8 +291,15 @@ struct global_attr {
|
|||
int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu);
|
||||
int cpufreq_update_policy(unsigned int cpu);
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
/* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */
|
||||
unsigned int cpufreq_get(unsigned int cpu);
|
||||
#else
|
||||
static inline unsigned int cpufreq_get(unsigned int cpu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
|
|
|
|||
|
|
@ -124,7 +124,9 @@ struct device_driver {
|
|||
struct bus_type *bus;
|
||||
|
||||
struct module *owner;
|
||||
const char *mod_name; /* used for built-in modules */
|
||||
const char *mod_name; /* used for built-in modules */
|
||||
|
||||
bool suppress_bind_attrs; /* disables bind/unbind via sysfs */
|
||||
|
||||
int (*probe) (struct device *dev);
|
||||
int (*remove) (struct device *dev);
|
||||
|
|
|
|||
|
|
@ -361,6 +361,7 @@ typedef struct elf64_shdr {
|
|||
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
|
||||
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
|
||||
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
|
||||
#define NT_PRXSTATUS 0x300 /* s390 upper register halves */
|
||||
|
||||
|
||||
/* Note header in a PT_NOTE section */
|
||||
|
|
|
|||
|
|
@ -137,6 +137,14 @@ struct ext3_inode_info {
|
|||
* by other means, so we have truncate_mutex.
|
||||
*/
|
||||
struct mutex truncate_mutex;
|
||||
|
||||
/*
|
||||
* Transactions that contain inode's metadata needed to complete
|
||||
* fsync and fdatasync, respectively.
|
||||
*/
|
||||
atomic_t i_sync_tid;
|
||||
atomic_t i_datasync_tid;
|
||||
|
||||
struct inode vfs_inode;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -669,12 +669,6 @@ struct fb_ops {
|
|||
/* perform fb specific mmap */
|
||||
int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma);
|
||||
|
||||
/* save current hardware state */
|
||||
void (*fb_save_state)(struct fb_info *info);
|
||||
|
||||
/* restore saved state */
|
||||
void (*fb_restore_state)(struct fb_info *info);
|
||||
|
||||
/* get capability given var */
|
||||
void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps,
|
||||
struct fb_var_screeninfo *var);
|
||||
|
|
|
|||
|
|
@ -300,6 +300,10 @@ struct inodes_stat_t {
|
|||
#define BLKTRACESTOP _IO(0x12,117)
|
||||
#define BLKTRACETEARDOWN _IO(0x12,118)
|
||||
#define BLKDISCARD _IO(0x12,119)
|
||||
#define BLKIOMIN _IO(0x12,120)
|
||||
#define BLKIOOPT _IO(0x12,121)
|
||||
#define BLKALIGNOFF _IO(0x12,122)
|
||||
#define BLKPBSZGET _IO(0x12,123)
|
||||
|
||||
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
|
||||
#define FIBMAP _IO(0x00,1) /* bmap access */
|
||||
|
|
@ -2446,7 +2450,7 @@ static int __fops ## _open(struct inode *inode, struct file *file) \
|
|||
__simple_attr_check_format(__fmt, 0ull); \
|
||||
return simple_attr_open(inode, file, __get, __set, __fmt); \
|
||||
} \
|
||||
static struct file_operations __fops = { \
|
||||
static const struct file_operations __fops = { \
|
||||
.owner = THIS_MODULE, \
|
||||
.open = __fops ## _open, \
|
||||
.release = simple_attr_release, \
|
||||
|
|
|
|||
|
|
@ -91,6 +91,8 @@ struct fscache_operation {
|
|||
#define FSCACHE_OP_WAITING 4 /* cleared when op is woken */
|
||||
#define FSCACHE_OP_EXCLUSIVE 5 /* exclusive op, other ops must wait */
|
||||
#define FSCACHE_OP_DEAD 6 /* op is now dead */
|
||||
#define FSCACHE_OP_DEC_READ_CNT 7 /* decrement object->n_reads on destruction */
|
||||
#define FSCACHE_OP_KEEP_FLAGS 0xc0 /* flags to keep when repurposing an op */
|
||||
|
||||
atomic_t usage;
|
||||
unsigned debug_id; /* debugging ID */
|
||||
|
|
@ -102,6 +104,16 @@ struct fscache_operation {
|
|||
|
||||
/* operation releaser */
|
||||
fscache_operation_release_t release;
|
||||
|
||||
#ifdef CONFIG_SLOW_WORK_PROC
|
||||
const char *name; /* operation name */
|
||||
const char *state; /* operation state */
|
||||
#define fscache_set_op_name(OP, N) do { (OP)->name = (N); } while(0)
|
||||
#define fscache_set_op_state(OP, S) do { (OP)->state = (S); } while(0)
|
||||
#else
|
||||
#define fscache_set_op_name(OP, N) do { } while(0)
|
||||
#define fscache_set_op_state(OP, S) do { } while(0)
|
||||
#endif
|
||||
};
|
||||
|
||||
extern atomic_t fscache_op_debug_id;
|
||||
|
|
@ -125,6 +137,7 @@ static inline void fscache_operation_init(struct fscache_operation *op,
|
|||
op->debug_id = atomic_inc_return(&fscache_op_debug_id);
|
||||
op->release = release;
|
||||
INIT_LIST_HEAD(&op->pend_link);
|
||||
fscache_set_op_state(op, "Init");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -221,8 +234,10 @@ struct fscache_cache_ops {
|
|||
struct fscache_object *(*alloc_object)(struct fscache_cache *cache,
|
||||
struct fscache_cookie *cookie);
|
||||
|
||||
/* look up the object for a cookie */
|
||||
void (*lookup_object)(struct fscache_object *object);
|
||||
/* look up the object for a cookie
|
||||
* - return -ETIMEDOUT to be requeued
|
||||
*/
|
||||
int (*lookup_object)(struct fscache_object *object);
|
||||
|
||||
/* finished looking up */
|
||||
void (*lookup_complete)(struct fscache_object *object);
|
||||
|
|
@ -297,12 +312,14 @@ struct fscache_cookie {
|
|||
atomic_t usage; /* number of users of this cookie */
|
||||
atomic_t n_children; /* number of children of this cookie */
|
||||
spinlock_t lock;
|
||||
spinlock_t stores_lock; /* lock on page store tree */
|
||||
struct hlist_head backing_objects; /* object(s) backing this file/index */
|
||||
const struct fscache_cookie_def *def; /* definition */
|
||||
struct fscache_cookie *parent; /* parent of this entry */
|
||||
void *netfs_data; /* back pointer to netfs */
|
||||
struct radix_tree_root stores; /* pages to be stored on this cookie */
|
||||
#define FSCACHE_COOKIE_PENDING_TAG 0 /* pages tag: pending write to cache */
|
||||
#define FSCACHE_COOKIE_STORING_TAG 1 /* pages tag: writing to cache */
|
||||
|
||||
unsigned long flags;
|
||||
#define FSCACHE_COOKIE_LOOKING_UP 0 /* T if non-index cookie being looked up still */
|
||||
|
|
@ -337,6 +354,7 @@ struct fscache_object {
|
|||
FSCACHE_OBJECT_RECYCLING, /* retiring object */
|
||||
FSCACHE_OBJECT_WITHDRAWING, /* withdrawing object */
|
||||
FSCACHE_OBJECT_DEAD, /* object is now dead */
|
||||
FSCACHE_OBJECT__NSTATES
|
||||
} state;
|
||||
|
||||
int debug_id; /* debugging ID */
|
||||
|
|
@ -345,6 +363,7 @@ struct fscache_object {
|
|||
int n_obj_ops; /* number of object ops outstanding on object */
|
||||
int n_in_progress; /* number of ops in progress */
|
||||
int n_exclusive; /* number of exclusive ops queued */
|
||||
atomic_t n_reads; /* number of read ops in progress */
|
||||
spinlock_t lock; /* state and operations lock */
|
||||
|
||||
unsigned long lookup_jif; /* time at which lookup started */
|
||||
|
|
@ -358,6 +377,7 @@ struct fscache_object {
|
|||
#define FSCACHE_OBJECT_EV_RELEASE 4 /* T if netfs requested object release */
|
||||
#define FSCACHE_OBJECT_EV_RETIRE 5 /* T if netfs requested object retirement */
|
||||
#define FSCACHE_OBJECT_EV_WITHDRAW 6 /* T if cache requested object withdrawal */
|
||||
#define FSCACHE_OBJECT_EVENTS_MASK 0x7f /* mask of all events*/
|
||||
|
||||
unsigned long flags;
|
||||
#define FSCACHE_OBJECT_LOCK 0 /* T if object is busy being processed */
|
||||
|
|
@ -373,7 +393,11 @@ struct fscache_object {
|
|||
struct list_head dependents; /* FIFO of dependent objects */
|
||||
struct list_head dep_link; /* link in parent's dependents list */
|
||||
struct list_head pending_ops; /* unstarted operations on this object */
|
||||
#ifdef CONFIG_FSCACHE_OBJECT_LIST
|
||||
struct rb_node objlist_link; /* link in global object list */
|
||||
#endif
|
||||
pgoff_t store_limit; /* current storage limit */
|
||||
loff_t store_limit_l; /* current storage limit */
|
||||
};
|
||||
|
||||
extern const char *fscache_object_states[];
|
||||
|
|
@ -383,6 +407,10 @@ extern const char *fscache_object_states[];
|
|||
(obj)->state >= FSCACHE_OBJECT_AVAILABLE && \
|
||||
(obj)->state < FSCACHE_OBJECT_DYING)
|
||||
|
||||
#define fscache_object_is_dead(obj) \
|
||||
(test_bit(FSCACHE_IOERROR, &(obj)->cache->flags) && \
|
||||
(obj)->state >= FSCACHE_OBJECT_DYING)
|
||||
|
||||
extern const struct slow_work_ops fscache_object_slow_work_ops;
|
||||
|
||||
/**
|
||||
|
|
@ -414,6 +442,7 @@ void fscache_object_init(struct fscache_object *object,
|
|||
object->events = object->event_mask = 0;
|
||||
object->flags = 0;
|
||||
object->store_limit = 0;
|
||||
object->store_limit_l = 0;
|
||||
object->cache = cache;
|
||||
object->cookie = cookie;
|
||||
object->parent = NULL;
|
||||
|
|
@ -422,6 +451,12 @@ void fscache_object_init(struct fscache_object *object,
|
|||
extern void fscache_object_lookup_negative(struct fscache_object *object);
|
||||
extern void fscache_obtained_object(struct fscache_object *object);
|
||||
|
||||
#ifdef CONFIG_FSCACHE_OBJECT_LIST
|
||||
extern void fscache_object_destroy(struct fscache_object *object);
|
||||
#else
|
||||
#define fscache_object_destroy(object) do {} while(0)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* fscache_object_destroyed - Note destruction of an object in a cache
|
||||
* @cache: The cache from which the object came
|
||||
|
|
@ -460,6 +495,7 @@ static inline void fscache_object_lookup_error(struct fscache_object *object)
|
|||
static inline
|
||||
void fscache_set_store_limit(struct fscache_object *object, loff_t i_size)
|
||||
{
|
||||
object->store_limit_l = i_size;
|
||||
object->store_limit = i_size >> PAGE_SHIFT;
|
||||
if (i_size & ~PAGE_MASK)
|
||||
object->store_limit++;
|
||||
|
|
|
|||
|
|
@ -202,6 +202,8 @@ extern int __fscache_write_page(struct fscache_cookie *, struct page *, gfp_t);
|
|||
extern void __fscache_uncache_page(struct fscache_cookie *, struct page *);
|
||||
extern bool __fscache_check_page_write(struct fscache_cookie *, struct page *);
|
||||
extern void __fscache_wait_on_page_write(struct fscache_cookie *, struct page *);
|
||||
extern bool __fscache_maybe_release_page(struct fscache_cookie *, struct page *,
|
||||
gfp_t);
|
||||
|
||||
/**
|
||||
* fscache_register_netfs - Register a filesystem as desiring caching services
|
||||
|
|
@ -615,4 +617,29 @@ void fscache_wait_on_page_write(struct fscache_cookie *cookie,
|
|||
__fscache_wait_on_page_write(cookie, page);
|
||||
}
|
||||
|
||||
/**
|
||||
* fscache_maybe_release_page - Consider releasing a page, cancelling a store
|
||||
* @cookie: The cookie representing the cache object
|
||||
* @page: The netfs page that is being cached.
|
||||
* @gfp: The gfp flags passed to releasepage()
|
||||
*
|
||||
* Consider releasing a page for the vmscan algorithm, on behalf of the netfs's
|
||||
* releasepage() call. A storage request on the page may cancelled if it is
|
||||
* not currently being processed.
|
||||
*
|
||||
* The function returns true if the page no longer has a storage request on it,
|
||||
* and false if a storage request is left in place. If true is returned, the
|
||||
* page will have been passed to fscache_uncache_page(). If false is returned
|
||||
* the page cannot be freed yet.
|
||||
*/
|
||||
static inline
|
||||
bool fscache_maybe_release_page(struct fscache_cookie *cookie,
|
||||
struct page *page,
|
||||
gfp_t gfp)
|
||||
{
|
||||
if (fscache_cookie_valid(cookie) && PageFsCache(page))
|
||||
return __fscache_maybe_release_page(cookie, page, gfp);
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_FSCACHE_H */
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ extern void ftrace_enable_daemon(void);
|
|||
# define ftrace_set_filter(buf, len, reset) do { } while (0)
|
||||
# define ftrace_disable_daemon() do { } while (0)
|
||||
# define ftrace_enable_daemon() do { } while (0)
|
||||
static inline void ftrace_release(void *start, unsigned long size) { }
|
||||
static inline void ftrace_release_mod(struct module *mod) {}
|
||||
static inline int register_ftrace_command(struct ftrace_func_command *cmd)
|
||||
{
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@
|
|||
#define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITS | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITS | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | \
|
||||
FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | \
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ struct i2c_pnx_mif {
|
|||
int mode; /* Interface mode */
|
||||
struct completion complete; /* I/O completion */
|
||||
struct timer_list timer; /* Timeout */
|
||||
char * buf; /* Data buffer */
|
||||
u8 * buf; /* Data buffer */
|
||||
int len; /* Length of data buffer */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -361,6 +361,24 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data)
|
|||
dev_set_drvdata(&dev->dev, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* i2c_lock_adapter - Prevent access to an I2C bus segment
|
||||
* @adapter: Target I2C bus segment
|
||||
*/
|
||||
static inline void i2c_lock_adapter(struct i2c_adapter *adapter)
|
||||
{
|
||||
mutex_lock(&adapter->bus_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* i2c_unlock_adapter - Reauthorize access to an I2C bus segment
|
||||
* @adapter: Target I2C bus segment
|
||||
*/
|
||||
static inline void i2c_unlock_adapter(struct i2c_adapter *adapter)
|
||||
{
|
||||
mutex_unlock(&adapter->bus_lock);
|
||||
}
|
||||
|
||||
/*flags for the client struct: */
|
||||
#define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */
|
||||
#define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */
|
||||
|
|
|
|||
|
|
@ -349,11 +349,11 @@ struct twl4030_madc_platform_data {
|
|||
int irq_line;
|
||||
};
|
||||
|
||||
/* Boards have uniqe mappings of {col, row} --> keycode.
|
||||
* Column and row are 4 bits, but range only from 0..7.
|
||||
/* Boards have uniqe mappings of {row, col} --> keycode.
|
||||
* Column and row are 8 bits each, but range only from 0..7.
|
||||
* a PERSISTENT_KEY is "always on" and never reported.
|
||||
*/
|
||||
#define PERSISTENT_KEY(c, r) KEY((c), (r), KEY_RESERVED)
|
||||
#define PERSISTENT_KEY(r, c) KEY((r), (c), KEY_RESERVED)
|
||||
|
||||
struct twl4030_keypad_data {
|
||||
const struct matrix_keymap_data *keymap_data;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ struct ip_tunnel_prl {
|
|||
__u16 flags;
|
||||
__u16 __reserved;
|
||||
__u32 datalen;
|
||||
__u32 rs_delay;
|
||||
__u32 __reserved2;
|
||||
/* data follows */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -271,6 +271,7 @@ void __init parse_early_options(char *cmdline);
|
|||
#else /* MODULE */
|
||||
|
||||
/* Don't use these in modules, but some people do... */
|
||||
#define early_initcall(fn) module_init(fn)
|
||||
#define core_initcall(fn) module_init(fn)
|
||||
#define postcore_initcall(fn) module_init(fn)
|
||||
#define arch_initcall(fn) module_init(fn)
|
||||
|
|
|
|||
|
|
@ -1377,6 +1377,10 @@ extern struct class input_class;
|
|||
* methods; erase() is optional. set_gain() and set_autocenter() need
|
||||
* only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER
|
||||
* bits.
|
||||
*
|
||||
* Note that playback(), set_gain() and set_autocenter() are called with
|
||||
* dev->event_lock spinlock held and interrupts off and thus may not
|
||||
* sleep.
|
||||
*/
|
||||
struct ff_device {
|
||||
int (*upload)(struct input_dev *dev, struct ff_effect *effect,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
#include <linux/irqreturn.h>
|
||||
#include <linux/irqnr.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/irqflags.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/percpu.h>
|
||||
|
|
@ -610,6 +609,7 @@ extern void debug_poll_all_shared_irqs(void);
|
|||
static inline void debug_poll_all_shared_irqs(void) { }
|
||||
#endif
|
||||
|
||||
struct seq_file;
|
||||
int show_interrupts(struct seq_file *p, void *v);
|
||||
|
||||
struct irq_desc;
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
int mp_mrru; /* unused */
|
||||
struct sk_buff_head frags; /* fragments sl list */
|
||||
struct sk_buff * frags; /* fragments sl list -- use skb->next */
|
||||
long frames; /* number of frames in the frame list */
|
||||
unsigned int seq; /* last processed packet seq #: any packets
|
||||
* with smaller seq # will be dropped
|
||||
|
|
|
|||
|
|
@ -464,9 +464,9 @@ struct handle_s
|
|||
*/
|
||||
struct transaction_chp_stats_s {
|
||||
unsigned long cs_chp_time;
|
||||
unsigned long cs_forced_to_close;
|
||||
unsigned long cs_written;
|
||||
unsigned long cs_dropped;
|
||||
__u32 cs_forced_to_close;
|
||||
__u32 cs_written;
|
||||
__u32 cs_dropped;
|
||||
};
|
||||
|
||||
/* The transaction_t type is the guts of the journaling mechanism. It
|
||||
|
|
@ -668,23 +668,16 @@ struct transaction_run_stats_s {
|
|||
unsigned long rs_flushing;
|
||||
unsigned long rs_logging;
|
||||
|
||||
unsigned long rs_handle_count;
|
||||
unsigned long rs_blocks;
|
||||
unsigned long rs_blocks_logged;
|
||||
__u32 rs_handle_count;
|
||||
__u32 rs_blocks;
|
||||
__u32 rs_blocks_logged;
|
||||
};
|
||||
|
||||
struct transaction_stats_s {
|
||||
int ts_type;
|
||||
unsigned long ts_tid;
|
||||
union {
|
||||
struct transaction_run_stats_s run;
|
||||
struct transaction_chp_stats_s chp;
|
||||
} u;
|
||||
struct transaction_run_stats_s run;
|
||||
};
|
||||
|
||||
#define JBD2_STATS_RUN 1
|
||||
#define JBD2_STATS_CHECKPOINT 2
|
||||
|
||||
static inline unsigned long
|
||||
jbd2_time_diff(unsigned long start, unsigned long end)
|
||||
{
|
||||
|
|
@ -988,12 +981,6 @@ struct journal_s
|
|||
/*
|
||||
* Journal statistics
|
||||
*/
|
||||
struct transaction_stats_s *j_history;
|
||||
int j_history_max;
|
||||
int j_history_cur;
|
||||
/*
|
||||
* Protect the transactions statistics history
|
||||
*/
|
||||
spinlock_t j_history_lock;
|
||||
struct proc_dir_entry *j_proc_entry;
|
||||
struct transaction_stats_s j_stats;
|
||||
|
|
|
|||
|
|
@ -659,6 +659,12 @@ extern int do_sysinfo(struct sysinfo *info);
|
|||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#ifndef __EXPORTED_HEADERS__
|
||||
#ifndef __KERNEL__
|
||||
#warning Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __EXPORTED_HEADERS__ */
|
||||
|
||||
#define SI_LOAD_SHIFT 16
|
||||
struct sysinfo {
|
||||
long uptime; /* Seconds since boot */
|
||||
|
|
|
|||
|
|
@ -418,6 +418,17 @@ enum {
|
|||
ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER |
|
||||
ATA_TIMING_DMACK_HOLD | ATA_TIMING_CYCLE |
|
||||
ATA_TIMING_UDMA,
|
||||
|
||||
/* ACPI constants */
|
||||
ATA_ACPI_FILTER_SETXFER = 1 << 0,
|
||||
ATA_ACPI_FILTER_LOCK = 1 << 1,
|
||||
ATA_ACPI_FILTER_DIPM = 1 << 2,
|
||||
ATA_ACPI_FILTER_FPDMA_OFFSET = 1 << 3, /* FPDMA non-zero offset */
|
||||
ATA_ACPI_FILTER_FPDMA_AA = 1 << 4, /* FPDMA auto activate */
|
||||
|
||||
ATA_ACPI_FILTER_DEFAULT = ATA_ACPI_FILTER_SETXFER |
|
||||
ATA_ACPI_FILTER_LOCK |
|
||||
ATA_ACPI_FILTER_DIPM,
|
||||
};
|
||||
|
||||
enum ata_xfer_mask {
|
||||
|
|
@ -587,6 +598,7 @@ struct ata_device {
|
|||
#ifdef CONFIG_ATA_ACPI
|
||||
acpi_handle acpi_handle;
|
||||
union acpi_object *gtf_cache;
|
||||
unsigned int gtf_filter;
|
||||
#endif
|
||||
/* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */
|
||||
u64 n_sectors; /* size of device, if ATA */
|
||||
|
|
|
|||
|
|
@ -1212,7 +1212,7 @@
|
|||
#define WM831X_LDO1_OK_SHIFT 0 /* LDO1_OK */
|
||||
#define WM831X_LDO1_OK_WIDTH 1 /* LDO1_OK */
|
||||
|
||||
#define WM831X_ISINK_MAX_ISEL 56
|
||||
extern int wm831x_isinkv_values[WM831X_ISINK_MAX_ISEL];
|
||||
#define WM831X_ISINK_MAX_ISEL 55
|
||||
extern int wm831x_isinkv_values[WM831X_ISINK_MAX_ISEL + 1];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#define LINUX_MMC_HOST_H
|
||||
|
||||
#include <linux/leds.h>
|
||||
#include <linux/sched.h>
|
||||
|
||||
#include <linux/mmc/core.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ typedef int (*param_set_fn)(const char *val, struct kernel_param *kp);
|
|||
typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp);
|
||||
|
||||
/* Flag bits for kernel_param.flags */
|
||||
#define KPARAM_KMALLOCED 1
|
||||
#define KPARAM_ISBOOL 2
|
||||
|
||||
struct kernel_param {
|
||||
|
|
|
|||
|
|
@ -145,14 +145,14 @@ static inline int ip_mroute_opt(int opt)
|
|||
#endif
|
||||
|
||||
#ifdef CONFIG_IP_MROUTE
|
||||
extern int ip_mroute_setsockopt(struct sock *, int, char __user *, int);
|
||||
extern int ip_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
|
||||
extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
|
||||
extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg);
|
||||
extern int ip_mr_init(void);
|
||||
#else
|
||||
static inline
|
||||
int ip_mroute_setsockopt(struct sock *sock,
|
||||
int optname, char __user *optval, int optlen)
|
||||
int optname, char __user *optval, unsigned int optlen)
|
||||
{
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ static inline int ip6_mroute_opt(int opt)
|
|||
struct sock;
|
||||
|
||||
#ifdef CONFIG_IPV6_MROUTE
|
||||
extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, int);
|
||||
extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
|
||||
extern int ip6_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
|
||||
extern int ip6_mr_input(struct sk_buff *skb);
|
||||
extern int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg);
|
||||
|
|
@ -143,7 +143,7 @@ extern void ip6_mr_cleanup(void);
|
|||
#else
|
||||
static inline
|
||||
int ip6_mroute_setsockopt(struct sock *sock,
|
||||
int optname, char __user *optval, int optlen)
|
||||
int optname, char __user *optval, unsigned int optlen)
|
||||
{
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -178,11 +178,11 @@ struct proto_ops {
|
|||
int (*listen) (struct socket *sock, int len);
|
||||
int (*shutdown) (struct socket *sock, int flags);
|
||||
int (*setsockopt)(struct socket *sock, int level,
|
||||
int optname, char __user *optval, int optlen);
|
||||
int optname, char __user *optval, unsigned int optlen);
|
||||
int (*getsockopt)(struct socket *sock, int level,
|
||||
int optname, char __user *optval, int __user *optlen);
|
||||
int (*compat_setsockopt)(struct socket *sock, int level,
|
||||
int optname, char __user *optval, int optlen);
|
||||
int optname, char __user *optval, unsigned int optlen);
|
||||
int (*compat_getsockopt)(struct socket *sock, int level,
|
||||
int optname, char __user *optval, int __user *optlen);
|
||||
int (*sendmsg) (struct kiocb *iocb, struct socket *sock,
|
||||
|
|
@ -256,7 +256,7 @@ extern int kernel_getpeername(struct socket *sock, struct sockaddr *addr,
|
|||
extern int kernel_getsockopt(struct socket *sock, int level, int optname,
|
||||
char *optval, int *optlen);
|
||||
extern int kernel_setsockopt(struct socket *sock, int level, int optname,
|
||||
char *optval, int optlen);
|
||||
char *optval, unsigned int optlen);
|
||||
extern int kernel_sendpage(struct socket *sock, struct page *page, int offset,
|
||||
size_t size, int flags);
|
||||
extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg);
|
||||
|
|
@ -313,7 +313,7 @@ SOCKCALL_WRAP(name, compat_ioctl, (struct socket *sock, unsigned int cmd, \
|
|||
SOCKCALL_WRAP(name, listen, (struct socket *sock, int len), (sock, len)) \
|
||||
SOCKCALL_WRAP(name, shutdown, (struct socket *sock, int flags), (sock, flags)) \
|
||||
SOCKCALL_WRAP(name, setsockopt, (struct socket *sock, int level, int optname, \
|
||||
char __user *optval, int optlen), (sock, level, optname, optval, optlen)) \
|
||||
char __user *optval, unsigned int optlen), (sock, level, optname, optval, optlen)) \
|
||||
SOCKCALL_WRAP(name, getsockopt, (struct socket *sock, int level, int optname, \
|
||||
char __user *optval, int __user *optlen), (sock, level, optname, optval, optlen)) \
|
||||
SOCKCALL_WRAP(name, sendmsg, (struct kiocb *iocb, struct socket *sock, struct msghdr *m, size_t len), \
|
||||
|
|
|
|||
|
|
@ -557,7 +557,7 @@ struct netdev_queue {
|
|||
* Callback uses when the transmitter has not made any progress
|
||||
* for dev->watchdog ticks.
|
||||
*
|
||||
* struct net_device_stats* (*get_stats)(struct net_device *dev);
|
||||
* struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);
|
||||
* Called when a user wants to get the network device usage
|
||||
* statistics. If not defined, the counters in dev->stats will
|
||||
* be used.
|
||||
|
|
|
|||
|
|
@ -221,12 +221,12 @@ __ret;})
|
|||
|
||||
/* Call setsockopt() */
|
||||
int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
|
||||
int len);
|
||||
unsigned int len);
|
||||
int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
|
||||
int *len);
|
||||
|
||||
int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval,
|
||||
char __user *opt, int len);
|
||||
char __user *opt, unsigned int len);
|
||||
int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval,
|
||||
char __user *opt, int *len);
|
||||
|
||||
|
|
|
|||
|
|
@ -424,15 +424,6 @@ struct nilfs_dat_entry {
|
|||
__le64 de_rsv;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct nilfs_dat_group_desc - block group descriptor
|
||||
* @dg_nfrees: number of free virtual block numbers in block group
|
||||
*/
|
||||
struct nilfs_dat_group_desc {
|
||||
__le32 dg_nfrees;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* struct nilfs_snapshot_list - snapshot list
|
||||
* @ssl_next: next checkpoint number on snapshot list
|
||||
|
|
|
|||
|
|
@ -379,9 +379,6 @@
|
|||
#define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c
|
||||
#define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390
|
||||
#define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c
|
||||
/* AMD SB Chipset */
|
||||
#define PCI_DEVICE_ID_AMD_SB900_IDE 0x780c
|
||||
#define PCI_DEVICE_ID_AMD_SB900_SATA_IDE 0x7800
|
||||
|
||||
#define PCI_VENDOR_ID_VLSI 0x1004
|
||||
#define PCI_DEVICE_ID_VLSI_82C592 0x0005
|
||||
|
|
@ -485,6 +482,9 @@
|
|||
#define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361
|
||||
#define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252
|
||||
|
||||
#define PCI_SUBVENDOR_ID_IBM 0x1014
|
||||
#define PCI_SUBDEVICE_ID_IBM_SATURN_SERIAL_ONE_PORT 0x03d4
|
||||
|
||||
#define PCI_VENDOR_ID_UNISYS 0x1018
|
||||
#define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C
|
||||
|
||||
|
|
@ -543,7 +543,7 @@
|
|||
#define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450
|
||||
#define PCI_DEVICE_ID_AMD_8131_APIC 0x7451
|
||||
#define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458
|
||||
#define PCI_DEVICE_ID_AMD_SB900_SMBUS 0x780b
|
||||
#define PCI_DEVICE_ID_AMD_HUDSON2_SMBUS 0x780b
|
||||
#define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F
|
||||
#define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090
|
||||
#define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091
|
||||
|
|
@ -553,9 +553,10 @@
|
|||
#define PCI_DEVICE_ID_AMD_CS5536_UDC 0x2096
|
||||
#define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097
|
||||
#define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A
|
||||
|
||||
#define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081
|
||||
#define PCI_DEVICE_ID_AMD_LX_AES 0x2082
|
||||
#define PCI_DEVICE_ID_AMD_HUDSON2_IDE 0x780c
|
||||
#define PCI_DEVICE_ID_AMD_HUDSON2_SATA_IDE 0x7800
|
||||
|
||||
#define PCI_VENDOR_ID_TRIDENT 0x1023
|
||||
#define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000
|
||||
|
|
@ -776,6 +777,7 @@
|
|||
#define PCI_DEVICE_ID_TI_X515 0x8036
|
||||
#define PCI_DEVICE_ID_TI_XX12 0x8039
|
||||
#define PCI_DEVICE_ID_TI_XX12_FM 0x803b
|
||||
#define PCI_DEVICE_ID_TI_XIO2000A 0x8231
|
||||
#define PCI_DEVICE_ID_TI_1130 0xac12
|
||||
#define PCI_DEVICE_ID_TI_1031 0xac13
|
||||
#define PCI_DEVICE_ID_TI_1131 0xac15
|
||||
|
|
@ -1954,6 +1956,8 @@
|
|||
#define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */
|
||||
#define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */
|
||||
#define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */
|
||||
#define PCI_DEVICE_ID_LAVA_QUATTRO_A 0x0120 /* 2x 16550A, half of 4 port */
|
||||
#define PCI_DEVICE_ID_LAVA_QUATTRO_B 0x0121 /* 2x 16550A, half of 4 port */
|
||||
#define PCI_DEVICE_ID_LAVA_OCTO_A 0x0180 /* 4x 16550A, half of 8 port */
|
||||
#define PCI_DEVICE_ID_LAVA_OCTO_B 0x0181 /* 4x 16550A, half of 8 port */
|
||||
#define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */
|
||||
|
|
@ -2161,6 +2165,10 @@
|
|||
#define PCI_DEVICE_ID_ADDIDATA_APCI7420_3 0x700D
|
||||
#define PCI_DEVICE_ID_ADDIDATA_APCI7300_3 0x700E
|
||||
#define PCI_DEVICE_ID_ADDIDATA_APCI7800_3 0x700F
|
||||
#define PCI_DEVICE_ID_ADDIDATA_APCIe7300 0x7010
|
||||
#define PCI_DEVICE_ID_ADDIDATA_APCIe7420 0x7011
|
||||
#define PCI_DEVICE_ID_ADDIDATA_APCIe7500 0x7012
|
||||
#define PCI_DEVICE_ID_ADDIDATA_APCIe7800 0x7013
|
||||
|
||||
#define PCI_VENDOR_ID_PDC 0x15e9
|
||||
|
||||
|
|
|
|||
|
|
@ -442,6 +442,7 @@ enum perf_callchain_context {
|
|||
#include <linux/hrtimer.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/pid_namespace.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
#define PERF_MAX_STACK_DEPTH 255
|
||||
|
|
@ -470,8 +471,8 @@ struct hw_perf_event {
|
|||
unsigned long event_base;
|
||||
int idx;
|
||||
};
|
||||
union { /* software */
|
||||
atomic64_t count;
|
||||
struct { /* software */
|
||||
s64 remaining;
|
||||
struct hrtimer hrtimer;
|
||||
};
|
||||
};
|
||||
|
|
@ -513,6 +514,10 @@ struct file;
|
|||
|
||||
struct perf_mmap_data {
|
||||
struct rcu_head rcu_head;
|
||||
#ifdef CONFIG_PERF_USE_VMALLOC
|
||||
struct work_struct work;
|
||||
#endif
|
||||
int data_order;
|
||||
int nr_pages; /* nr of data pages */
|
||||
int writable; /* are we writable */
|
||||
int nr_locked; /* nr pages mlocked */
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@
|
|||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/sched.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
/* ~832 bytes of stack space used max in sys_select/sys_poll before allocating
|
||||
|
|
|
|||
|
|
@ -88,6 +88,18 @@
|
|||
#define PR_TASK_PERF_EVENTS_DISABLE 31
|
||||
#define PR_TASK_PERF_EVENTS_ENABLE 32
|
||||
|
||||
/*
|
||||
* Set early/late kill mode for hwpoison memory corruption.
|
||||
* This influences when the process gets killed on a memory corruption.
|
||||
*/
|
||||
#define PR_MCE_KILL 33
|
||||
# define PR_MCE_KILL_CLEAR 0
|
||||
# define PR_MCE_KILL_SET 1
|
||||
|
||||
# define PR_MCE_KILL_LATE 0
|
||||
# define PR_MCE_KILL_EARLY 1
|
||||
# define PR_MCE_KILL_DEFAULT 2
|
||||
|
||||
#define PR_MCE_KILL_GET 34
|
||||
|
||||
#endif /* _LINUX_PRCTL_H */
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ extern int rcu_scheduler_active;
|
|||
#error "Unknown RCU implementation specified to kernel configuration"
|
||||
#endif
|
||||
|
||||
#define RCU_HEAD_INIT { .next = NULL, .func = NULL }
|
||||
#define RCU_HEAD_INIT { .next = NULL, .func = NULL }
|
||||
#define RCU_HEAD(head) struct rcu_head head = RCU_HEAD_INIT
|
||||
#define INIT_RCU_HEAD(ptr) do { \
|
||||
(ptr)->next = NULL; (ptr)->func = NULL; \
|
||||
|
|
@ -129,12 +129,6 @@ static inline void rcu_read_lock(void)
|
|||
rcu_read_acquire();
|
||||
}
|
||||
|
||||
/**
|
||||
* rcu_read_unlock - marks the end of an RCU read-side critical section.
|
||||
*
|
||||
* See rcu_read_lock() for more information.
|
||||
*/
|
||||
|
||||
/*
|
||||
* So where is rcu_write_lock()? It does not exist, as there is no
|
||||
* way for writers to lock out RCU readers. This is a feature, not
|
||||
|
|
@ -144,6 +138,12 @@ static inline void rcu_read_lock(void)
|
|||
* used as well. RCU does not care how the writers keep out of each
|
||||
* others' way, as long as they do so.
|
||||
*/
|
||||
|
||||
/**
|
||||
* rcu_read_unlock - marks the end of an RCU read-side critical section.
|
||||
*
|
||||
* See rcu_read_lock() for more information.
|
||||
*/
|
||||
static inline void rcu_read_unlock(void)
|
||||
{
|
||||
rcu_read_release();
|
||||
|
|
@ -196,6 +196,8 @@ static inline void rcu_read_lock_sched(void)
|
|||
__acquire(RCU_SCHED);
|
||||
rcu_read_acquire();
|
||||
}
|
||||
|
||||
/* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
|
||||
static inline notrace void rcu_read_lock_sched_notrace(void)
|
||||
{
|
||||
preempt_disable_notrace();
|
||||
|
|
@ -213,6 +215,8 @@ static inline void rcu_read_unlock_sched(void)
|
|||
__release(RCU_SCHED);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
/* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
|
||||
static inline notrace void rcu_read_unlock_sched_notrace(void)
|
||||
{
|
||||
__release(RCU_SCHED);
|
||||
|
|
|
|||
|
|
@ -30,10 +30,14 @@
|
|||
#ifndef __LINUX_RCUTREE_H
|
||||
#define __LINUX_RCUTREE_H
|
||||
|
||||
struct notifier_block;
|
||||
|
||||
extern void rcu_sched_qs(int cpu);
|
||||
extern void rcu_bh_qs(int cpu);
|
||||
|
||||
extern int rcu_cpu_notify(struct notifier_block *self,
|
||||
unsigned long action, void *hcpu);
|
||||
extern int rcu_needs_cpu(int cpu);
|
||||
extern int rcu_expedited_torture_stats(char *page);
|
||||
|
||||
#ifdef CONFIG_TREE_PREEMPT_RCU
|
||||
|
||||
|
|
@ -72,11 +76,7 @@ static inline void __rcu_read_unlock_bh(void)
|
|||
|
||||
extern void call_rcu_sched(struct rcu_head *head,
|
||||
void (*func)(struct rcu_head *rcu));
|
||||
|
||||
static inline void synchronize_rcu_expedited(void)
|
||||
{
|
||||
synchronize_sched_expedited();
|
||||
}
|
||||
extern void synchronize_rcu_expedited(void);
|
||||
|
||||
static inline void synchronize_rcu_bh_expedited(void)
|
||||
{
|
||||
|
|
@ -85,16 +85,11 @@ static inline void synchronize_rcu_bh_expedited(void)
|
|||
|
||||
extern void __rcu_init(void);
|
||||
extern void rcu_check_callbacks(int cpu, int user);
|
||||
extern void rcu_restart_cpu(int cpu);
|
||||
|
||||
extern long rcu_batches_completed(void);
|
||||
extern long rcu_batches_completed_bh(void);
|
||||
extern long rcu_batches_completed_sched(void);
|
||||
|
||||
static inline void rcu_init_sched(void)
|
||||
{
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NO_HZ
|
||||
void rcu_enter_nohz(void);
|
||||
void rcu_exit_nohz(void);
|
||||
|
|
@ -107,7 +102,7 @@ static inline void rcu_exit_nohz(void)
|
|||
}
|
||||
#endif /* CONFIG_NO_HZ */
|
||||
|
||||
/* A context switch is a grace period for rcutree. */
|
||||
/* A context switch is a grace period for RCU-sched and RCU-bh. */
|
||||
static inline int rcu_blocking_is_gp(void)
|
||||
{
|
||||
return num_online_cpus() == 1;
|
||||
|
|
|
|||
|
|
@ -114,8 +114,7 @@ void res_counter_init(struct res_counter *counter, struct res_counter *parent);
|
|||
int __must_check res_counter_charge_locked(struct res_counter *counter,
|
||||
unsigned long val);
|
||||
int __must_check res_counter_charge(struct res_counter *counter,
|
||||
unsigned long val, struct res_counter **limit_fail_at,
|
||||
struct res_counter **soft_limit_at);
|
||||
unsigned long val, struct res_counter **limit_fail_at);
|
||||
|
||||
/*
|
||||
* uncharge - tell that some portion of the resource is released
|
||||
|
|
@ -128,8 +127,7 @@ int __must_check res_counter_charge(struct res_counter *counter,
|
|||
*/
|
||||
|
||||
void res_counter_uncharge_locked(struct res_counter *counter, unsigned long val);
|
||||
void res_counter_uncharge(struct res_counter *counter, unsigned long val,
|
||||
bool *was_soft_limit_excess);
|
||||
void res_counter_uncharge(struct res_counter *counter, unsigned long val);
|
||||
|
||||
static inline bool res_counter_limit_check_locked(struct res_counter *cnt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -176,6 +176,9 @@
|
|||
/* Qualcomm MSM SoCs */
|
||||
#define PORT_MSM 88
|
||||
|
||||
/* BCM63xx family SoCs */
|
||||
#define PORT_BCM63XX 89
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/compiler.h>
|
||||
|
|
|
|||
|
|
@ -354,8 +354,8 @@ struct sk_buff {
|
|||
ipvs_property:1,
|
||||
peeked:1,
|
||||
nf_trace:1;
|
||||
__be16 protocol:16;
|
||||
kmemcheck_bitfield_end(flags1);
|
||||
__be16 protocol;
|
||||
|
||||
void (*destructor)(struct sk_buff *skb);
|
||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||
|
|
@ -367,7 +367,6 @@ struct sk_buff {
|
|||
#endif
|
||||
|
||||
int iif;
|
||||
__u16 queue_mapping;
|
||||
#ifdef CONFIG_NET_SCHED
|
||||
__u16 tc_index; /* traffic control index */
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
|
|
@ -376,6 +375,7 @@ struct sk_buff {
|
|||
#endif
|
||||
|
||||
kmemcheck_bitfield_begin(flags2);
|
||||
__u16 queue_mapping:16;
|
||||
#ifdef CONFIG_IPV6_NDISC_NODETYPE
|
||||
__u8 ndisc_nodetype:2;
|
||||
#endif
|
||||
|
|
@ -1757,6 +1757,8 @@ extern int skb_copy_datagram_const_iovec(const struct sk_buff *from,
|
|||
int to_offset,
|
||||
int size);
|
||||
extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb);
|
||||
extern void skb_free_datagram_locked(struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
extern int skb_kill_datagram(struct sock *sk, struct sk_buff *skb,
|
||||
unsigned int flags);
|
||||
extern __wsum skb_checksum(const struct sk_buff *skb, int offset,
|
||||
|
|
|
|||
|
|
@ -17,13 +17,20 @@
|
|||
#ifdef CONFIG_SLOW_WORK
|
||||
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/timer.h>
|
||||
|
||||
struct slow_work;
|
||||
#ifdef CONFIG_SLOW_WORK_DEBUG
|
||||
struct seq_file;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The operations used to support slow work items
|
||||
*/
|
||||
struct slow_work_ops {
|
||||
/* owner */
|
||||
struct module *owner;
|
||||
|
||||
/* get a ref on a work item
|
||||
* - return 0 if successful, -ve if not
|
||||
*/
|
||||
|
|
@ -34,6 +41,11 @@ struct slow_work_ops {
|
|||
|
||||
/* execute a work item */
|
||||
void (*execute)(struct slow_work *work);
|
||||
|
||||
#ifdef CONFIG_SLOW_WORK_DEBUG
|
||||
/* describe a work item for debugfs */
|
||||
void (*desc)(struct slow_work *work, struct seq_file *m);
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -42,13 +54,24 @@ struct slow_work_ops {
|
|||
* queued
|
||||
*/
|
||||
struct slow_work {
|
||||
struct module *owner; /* the owning module */
|
||||
unsigned long flags;
|
||||
#define SLOW_WORK_PENDING 0 /* item pending (further) execution */
|
||||
#define SLOW_WORK_EXECUTING 1 /* item currently executing */
|
||||
#define SLOW_WORK_ENQ_DEFERRED 2 /* item enqueue deferred */
|
||||
#define SLOW_WORK_VERY_SLOW 3 /* item is very slow */
|
||||
#define SLOW_WORK_CANCELLING 4 /* item is being cancelled, don't enqueue */
|
||||
#define SLOW_WORK_DELAYED 5 /* item is struct delayed_slow_work with active timer */
|
||||
const struct slow_work_ops *ops; /* operations table for this item */
|
||||
struct list_head link; /* link in queue */
|
||||
#ifdef CONFIG_SLOW_WORK_DEBUG
|
||||
struct timespec mark; /* jiffies at which queued or exec begun */
|
||||
#endif
|
||||
};
|
||||
|
||||
struct delayed_slow_work {
|
||||
struct slow_work work;
|
||||
struct timer_list timer;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -66,6 +89,20 @@ static inline void slow_work_init(struct slow_work *work,
|
|||
INIT_LIST_HEAD(&work->link);
|
||||
}
|
||||
|
||||
/**
|
||||
* slow_work_init - Initialise a delayed slow work item
|
||||
* @work: The work item to initialise
|
||||
* @ops: The operations to use to handle the slow work item
|
||||
*
|
||||
* Initialise a delayed slow work item.
|
||||
*/
|
||||
static inline void delayed_slow_work_init(struct delayed_slow_work *dwork,
|
||||
const struct slow_work_ops *ops)
|
||||
{
|
||||
init_timer(&dwork->timer);
|
||||
slow_work_init(&dwork->work, ops);
|
||||
}
|
||||
|
||||
/**
|
||||
* vslow_work_init - Initialise a very slow work item
|
||||
* @work: The work item to initialise
|
||||
|
|
@ -83,9 +120,40 @@ static inline void vslow_work_init(struct slow_work *work,
|
|||
INIT_LIST_HEAD(&work->link);
|
||||
}
|
||||
|
||||
/**
|
||||
* slow_work_is_queued - Determine if a slow work item is on the work queue
|
||||
* work: The work item to test
|
||||
*
|
||||
* Determine if the specified slow-work item is on the work queue. This
|
||||
* returns true if it is actually on the queue.
|
||||
*
|
||||
* If the item is executing and has been marked for requeue when execution
|
||||
* finishes, then false will be returned.
|
||||
*
|
||||
* Anyone wishing to wait for completion of execution can wait on the
|
||||
* SLOW_WORK_EXECUTING bit.
|
||||
*/
|
||||
static inline bool slow_work_is_queued(struct slow_work *work)
|
||||
{
|
||||
unsigned long flags = work->flags;
|
||||
return flags & SLOW_WORK_PENDING && !(flags & SLOW_WORK_EXECUTING);
|
||||
}
|
||||
|
||||
extern int slow_work_enqueue(struct slow_work *work);
|
||||
extern int slow_work_register_user(void);
|
||||
extern void slow_work_unregister_user(void);
|
||||
extern void slow_work_cancel(struct slow_work *work);
|
||||
extern int slow_work_register_user(struct module *owner);
|
||||
extern void slow_work_unregister_user(struct module *owner);
|
||||
|
||||
extern int delayed_slow_work_enqueue(struct delayed_slow_work *dwork,
|
||||
unsigned long delay);
|
||||
|
||||
static inline void delayed_slow_work_cancel(struct delayed_slow_work *dwork)
|
||||
{
|
||||
slow_work_cancel(&dwork->work);
|
||||
}
|
||||
|
||||
extern bool slow_work_sleep_till_thread_needed(struct slow_work *work,
|
||||
signed long *_timeout);
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
extern ctl_table slow_work_sysctls[];
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ struct __kernel_sockaddr_storage {
|
|||
/* _SS_MAXSIZE value minus size of ss_family */
|
||||
} __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */
|
||||
|
||||
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <asm/socket.h> /* arch-dependent defines */
|
||||
#include <linux/sockios.h> /* the SIOCxxx I/O controls */
|
||||
|
|
@ -100,21 +100,6 @@ struct cmsghdr {
|
|||
((mhdr)->msg_controllen - \
|
||||
((char *)(cmsg) - (char *)(mhdr)->msg_control)))
|
||||
|
||||
/*
|
||||
* This mess will go away with glibc
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __KINLINE static inline
|
||||
#elif defined(__GNUC__)
|
||||
#define __KINLINE static __inline__
|
||||
#elif defined(__cplusplus)
|
||||
#define __KINLINE static inline
|
||||
#else
|
||||
#define __KINLINE static
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Get the next cmsg header
|
||||
*
|
||||
|
|
@ -128,7 +113,7 @@ struct cmsghdr {
|
|||
* ancillary object DATA. --ANK (980731)
|
||||
*/
|
||||
|
||||
__KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
|
||||
static inline struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
|
||||
struct cmsghdr *__cmsg)
|
||||
{
|
||||
struct cmsghdr * __ptr;
|
||||
|
|
@ -140,7 +125,7 @@ __KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
|
|||
return __ptr;
|
||||
}
|
||||
|
||||
__KINLINE struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
|
||||
static inline struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
|
||||
{
|
||||
return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ extern char * strnchr(const char *, size_t, int);
|
|||
#ifndef __HAVE_ARCH_STRRCHR
|
||||
extern char * strrchr(const char *,int);
|
||||
#endif
|
||||
extern char * strstrip(char *);
|
||||
extern char * __must_check strstrip(char *);
|
||||
#ifndef __HAVE_ARCH_STRSTR
|
||||
extern char * strstr(const char *,const char *);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -301,6 +301,8 @@ static inline int unregister_pm_notifier(struct notifier_block *nb)
|
|||
#define pm_notifier(fn, pri) do { (void)(fn); } while (0)
|
||||
#endif /* !CONFIG_PM_SLEEP */
|
||||
|
||||
extern struct mutex pm_mutex;
|
||||
|
||||
#ifndef CONFIG_HIBERNATION
|
||||
static inline void register_nosave_region(unsigned long b, unsigned long e)
|
||||
{
|
||||
|
|
@ -308,8 +310,23 @@ static inline void register_nosave_region(unsigned long b, unsigned long e)
|
|||
static inline void register_nosave_region_late(unsigned long b, unsigned long e)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void lock_system_sleep(void) {}
|
||||
static inline void unlock_system_sleep(void) {}
|
||||
|
||||
#else
|
||||
|
||||
/* Let some subsystems like memory hotadd exclude hibernation */
|
||||
|
||||
static inline void lock_system_sleep(void)
|
||||
{
|
||||
mutex_lock(&pm_mutex);
|
||||
}
|
||||
|
||||
static inline void unlock_system_sleep(void)
|
||||
{
|
||||
mutex_unlock(&pm_mutex);
|
||||
}
|
||||
#endif
|
||||
|
||||
extern struct mutex pm_mutex;
|
||||
|
||||
#endif /* _LINUX_SUSPEND_H */
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ int arch_update_cpu_topology(void);
|
|||
| 1*SD_BALANCE_FORK \
|
||||
| 0*SD_BALANCE_WAKE \
|
||||
| 1*SD_WAKE_AFFINE \
|
||||
| 1*SD_PREFER_LOCAL \
|
||||
| 0*SD_PREFER_LOCAL \
|
||||
| 0*SD_SHARE_CPUPOWER \
|
||||
| 1*SD_SHARE_PKG_RESOURCES \
|
||||
| 0*SD_SERIALIZE \
|
||||
|
|
@ -162,7 +162,7 @@ int arch_update_cpu_topology(void);
|
|||
| 1*SD_BALANCE_FORK \
|
||||
| 0*SD_BALANCE_WAKE \
|
||||
| 1*SD_WAKE_AFFINE \
|
||||
| 1*SD_PREFER_LOCAL \
|
||||
| 0*SD_PREFER_LOCAL \
|
||||
| 0*SD_SHARE_CPUPOWER \
|
||||
| 0*SD_SHARE_PKG_RESOURCES \
|
||||
| 0*SD_SERIALIZE \
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
/*
|
||||
* Trace sequences are used to allow a function to call several other functions
|
||||
* to create a string of data to use (up to a max of PAGE_SIZE.
|
||||
* to create a string of data to use (up to a max of PAGE_SIZE).
|
||||
*/
|
||||
|
||||
struct trace_seq {
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ struct usb_serial {
|
|||
struct usb_interface *interface;
|
||||
unsigned char disconnected:1;
|
||||
unsigned char suspending:1;
|
||||
unsigned char attached:1;
|
||||
unsigned char minor;
|
||||
unsigned char num_ports;
|
||||
unsigned char num_port_pointers;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _LINUX_VIRTIO_9P_H
|
||||
/* This header is BSD licensed so anyone can use the definitions to implement
|
||||
* compatible drivers/servers. */
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
/* Maximum number of virtio channels per partition (1 for now) */
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _LINUX_VIRTIO_BALLOON_H
|
||||
/* This header is BSD licensed so anyone can use the definitions to implement
|
||||
* compatible drivers/servers. */
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
/* The feature bitmap for virtio balloon */
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
/* This header is BSD licensed so anyone can use the definitions to implement
|
||||
* compatible drivers/servers. */
|
||||
#include <linux/types.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
/* Feature bits */
|
||||
|
|
@ -13,11 +14,8 @@
|
|||
#define VIRTIO_BLK_F_RO 5 /* Disk is read-only */
|
||||
#define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/
|
||||
#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
|
||||
#define VIRTIO_BLK_F_IDENTIFY 8 /* ATA IDENTIFY supported */
|
||||
#define VIRTIO_BLK_F_FLUSH 9 /* Cache flush command support */
|
||||
|
||||
#define VIRTIO_BLK_ID_BYTES (sizeof(__u16[256])) /* IDENTIFY DATA */
|
||||
|
||||
struct virtio_blk_config {
|
||||
/* The capacity (in 512-byte sectors). */
|
||||
__u64 capacity;
|
||||
|
|
@ -33,7 +31,6 @@ struct virtio_blk_config {
|
|||
} geometry;
|
||||
/* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */
|
||||
__u32 blk_size;
|
||||
__u8 identify[VIRTIO_BLK_ID_BYTES];
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef _LINUX_VIRTIO_CONSOLE_H
|
||||
#define _LINUX_VIRTIO_CONSOLE_H
|
||||
#include <linux/types.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
/* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so
|
||||
* anyone can use the definitions to implement compatible drivers/servers. */
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
/* This header is BSD licensed so anyone can use the definitions to implement
|
||||
* compatible drivers/servers. */
|
||||
#include <linux/types.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _LINUX_VIRTIO_RNG_H
|
||||
/* This header is BSD licensed so anyone can use the definitions to implement
|
||||
* compatible drivers/servers. */
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
#endif /* _LINUX_VIRTIO_RNG_H */
|
||||
|
|
|
|||
|
|
@ -70,8 +70,8 @@ struct vt_event {
|
|||
#define VT_EVENT_UNBLANK 0x0004 /* Screen unblank */
|
||||
#define VT_EVENT_RESIZE 0x0008 /* Resize display */
|
||||
#define VT_MAX_EVENT 0x000F
|
||||
unsigned int old; /* Old console */
|
||||
unsigned int new; /* New console (if changing) */
|
||||
unsigned int oldev; /* Old console */
|
||||
unsigned int newev; /* New console (if changing) */
|
||||
unsigned int pad[4]; /* Padding for expansion */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@ extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
|
|||
|
||||
extern void flush_workqueue(struct workqueue_struct *wq);
|
||||
extern void flush_scheduled_work(void);
|
||||
extern void flush_delayed_work(struct delayed_work *work);
|
||||
|
||||
extern int schedule_work(struct work_struct *work);
|
||||
extern int schedule_work_on(int cpu, struct work_struct *work);
|
||||
|
|
|
|||
Loading…
Reference in a new issue