Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
@@ -40,6 +40,7 @@ enum {
|
||||
ATA_MAX_DEVICES = 2, /* per bus/port */
|
||||
ATA_MAX_PRD = 256, /* we could make these 256/256 */
|
||||
ATA_SECT_SIZE = 512,
|
||||
ATA_MAX_SECTORS_128 = 128,
|
||||
ATA_MAX_SECTORS = 256,
|
||||
ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ static inline int bdi_rw_congested(struct backing_dev_info *bdi)
|
||||
void clear_bdi_congested(struct backing_dev_info *bdi, int rw);
|
||||
void set_bdi_congested(struct backing_dev_info *bdi, int rw);
|
||||
long congestion_wait(int rw, long timeout);
|
||||
long congestion_wait_interruptible(int rw, long timeout);
|
||||
void congestion_end(int rw);
|
||||
|
||||
#define bdi_cap_writeback_dirty(bdi) \
|
||||
|
||||
@@ -108,7 +108,7 @@ static inline void *alloc_remap(int nid, unsigned long size)
|
||||
#endif /* CONFIG_HAVE_ARCH_ALLOC_REMAP */
|
||||
|
||||
extern unsigned long __meminitdata nr_kernel_pages;
|
||||
extern unsigned long nr_all_pages;
|
||||
extern unsigned long __meminitdata nr_all_pages;
|
||||
|
||||
extern void *alloc_large_system_hash(const char *tablename,
|
||||
unsigned long bucketsize,
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
# define __acquire(x) __context__(x,1)
|
||||
# define __release(x) __context__(x,-1)
|
||||
# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
|
||||
extern void __chk_user_ptr(void __user *);
|
||||
extern void __chk_io_ptr(void __iomem *);
|
||||
extern void __chk_user_ptr(const void __user *);
|
||||
extern void __chk_io_ptr(const void __iomem *);
|
||||
#else
|
||||
# define __user
|
||||
# define __kernel
|
||||
|
||||
@@ -127,9 +127,13 @@ static inline int cpu_is_offline(int cpu) { return 0; }
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
|
||||
#ifdef CONFIG_SUSPEND_SMP
|
||||
extern int suspend_cpu_hotplug;
|
||||
|
||||
extern int disable_nonboot_cpus(void);
|
||||
extern void enable_nonboot_cpus(void);
|
||||
#else
|
||||
#define suspend_cpu_hotplug 0
|
||||
|
||||
static inline int disable_nonboot_cpus(void) { return 0; }
|
||||
static inline void enable_nonboot_cpus(void) {}
|
||||
#endif
|
||||
|
||||
@@ -128,6 +128,7 @@ struct device_driver {
|
||||
|
||||
struct module * owner;
|
||||
const char * mod_name; /* used for built-in modules */
|
||||
struct module_kobject * mkobj;
|
||||
|
||||
int (*probe) (struct device * dev);
|
||||
int (*remove) (struct device * dev);
|
||||
@@ -353,6 +354,8 @@ extern int __must_check device_create_bin_file(struct device *dev,
|
||||
struct bin_attribute *attr);
|
||||
extern void device_remove_bin_file(struct device *dev,
|
||||
struct bin_attribute *attr);
|
||||
extern int device_schedule_callback(struct device *dev,
|
||||
void (*func)(struct device *));
|
||||
|
||||
/* device resource management */
|
||||
typedef void (*dr_release_t)(struct device *dev, void *res);
|
||||
|
||||
@@ -31,12 +31,19 @@
|
||||
/*
|
||||
* On x86-64 make the 64bit structure have the same alignment as the
|
||||
* 32bit structure. This makes 32bit emulation easier.
|
||||
*
|
||||
* UML/x86_64 needs the same packing as x86_64 - UML + UML_X86 +
|
||||
* 64_BIT adds up to UML/x86_64.
|
||||
*/
|
||||
#ifdef __x86_64__
|
||||
#define EPOLL_PACKED __attribute__((packed))
|
||||
#else
|
||||
#if defined(CONFIG_UML) && defined(CONFIG_UML_X86) && defined(CONFIG_64BIT)
|
||||
#define EPOLL_PACKED __attribute__((packed))
|
||||
#else
|
||||
#define EPOLL_PACKED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
struct epoll_event {
|
||||
__u32 events;
|
||||
|
||||
@@ -206,6 +206,7 @@ struct hrtimer_cpu_base {
|
||||
struct clock_event_device;
|
||||
|
||||
extern void clock_was_set(void);
|
||||
extern void hres_timers_resume(void);
|
||||
extern void hrtimer_interrupt(struct clock_event_device *dev);
|
||||
|
||||
/*
|
||||
@@ -236,6 +237,8 @@ static inline ktime_t hrtimer_cb_get_time(struct hrtimer *timer)
|
||||
*/
|
||||
static inline void clock_was_set(void) { }
|
||||
|
||||
static inline void hres_timers_resume(void) { }
|
||||
|
||||
/*
|
||||
* In non high resolution mode the time reference is taken from
|
||||
* the base softirq time variable.
|
||||
|
||||
@@ -615,6 +615,7 @@ typedef struct ide_drive_s {
|
||||
u8 init_speed; /* transfer rate set at boot */
|
||||
u8 pio_speed; /* unused by core, used by some drivers for fallback from DMA */
|
||||
u8 current_speed; /* current transfer rate set */
|
||||
u8 desired_speed; /* desired transfer rate set */
|
||||
u8 dn; /* now wide spread use */
|
||||
u8 wcache; /* status of write cache */
|
||||
u8 acoustic; /* acoustic management */
|
||||
@@ -860,6 +861,8 @@ typedef struct hwgroup_s {
|
||||
int (*expiry)(ide_drive_t *);
|
||||
/* ide_system_bus_speed */
|
||||
int pio_clock;
|
||||
int req_gen;
|
||||
int req_gen_timer;
|
||||
|
||||
unsigned char cmd_buf[4];
|
||||
} ide_hwgroup_t;
|
||||
|
||||
@@ -33,9 +33,22 @@ int ioremap_page_range(unsigned long addr, unsigned long end,
|
||||
/*
|
||||
* Managed iomap interface
|
||||
*/
|
||||
#ifdef CONFIG_HAS_IOPORT
|
||||
void __iomem * devm_ioport_map(struct device *dev, unsigned long port,
|
||||
unsigned int nr);
|
||||
void devm_ioport_unmap(struct device *dev, void __iomem *addr);
|
||||
#else
|
||||
static inline void __iomem *devm_ioport_map(struct device *dev,
|
||||
unsigned long port,
|
||||
unsigned int nr)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void devm_ioport_unmap(struct device *dev, void __iomem *addr)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void __iomem * devm_ioremap(struct device *dev, unsigned long offset,
|
||||
unsigned long size);
|
||||
|
||||
+3
-6
@@ -92,19 +92,16 @@ extern struct ipc_namespace init_ipc_ns;
|
||||
|
||||
#ifdef CONFIG_SYSVIPC
|
||||
#define INIT_IPC_NS(ns) .ns = &init_ipc_ns,
|
||||
extern int copy_ipcs(unsigned long flags, struct task_struct *tsk);
|
||||
#else
|
||||
#define INIT_IPC_NS(ns)
|
||||
static inline int copy_ipcs(unsigned long flags, struct task_struct *tsk)
|
||||
{ return 0; }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IPC_NS
|
||||
extern void free_ipc_ns(struct kref *kref);
|
||||
extern int copy_ipcs(unsigned long flags, struct task_struct *tsk);
|
||||
extern int unshare_ipcs(unsigned long flags, struct ipc_namespace **ns);
|
||||
#else
|
||||
static inline int copy_ipcs(unsigned long flags, struct task_struct *tsk)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
|
||||
|
||||
@@ -177,6 +177,7 @@ struct ipv6_devconf {
|
||||
#endif
|
||||
#endif
|
||||
__s32 proxy_ndp;
|
||||
__s32 accept_source_route;
|
||||
void *sysctl;
|
||||
};
|
||||
|
||||
@@ -205,6 +206,8 @@ enum {
|
||||
DEVCONF_RTR_PROBE_INTERVAL,
|
||||
DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
|
||||
DEVCONF_PROXY_NDP,
|
||||
__DEVCONF_OPTIMISTIC_DAD,
|
||||
DEVCONF_ACCEPT_SOURCE_ROUTE,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ extern int do_poke_blanked_console;
|
||||
|
||||
extern void (*kbd_ledfunc)(unsigned int led);
|
||||
|
||||
extern void set_console(int nr);
|
||||
extern int set_console(int nr);
|
||||
extern void schedule_console_callback(void);
|
||||
|
||||
static inline void set_leds(void)
|
||||
|
||||
@@ -87,8 +87,6 @@ static inline unsigned sysv_minor(u32 dev)
|
||||
return dev & 0x3ffff;
|
||||
}
|
||||
|
||||
bool is_lanana_major(unsigned int major);
|
||||
|
||||
#else /* __KERNEL__ */
|
||||
|
||||
/*
|
||||
|
||||
@@ -57,7 +57,11 @@ typedef union {
|
||||
} ktime_t;
|
||||
|
||||
#define KTIME_MAX ((s64)~((u64)1 << 63))
|
||||
#define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
|
||||
#if (BITS_PER_LONG == 64)
|
||||
# define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
|
||||
#else
|
||||
# define KTIME_SEC_MAX LONG_MAX
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ktime_t definitions when using the 64-bit scalar representation:
|
||||
|
||||
@@ -311,15 +311,17 @@ enum {
|
||||
ATA_HORKAGE_DIAGNOSTIC = (1 << 0), /* Failed boot diag */
|
||||
ATA_HORKAGE_NODMA = (1 << 1), /* DMA problems */
|
||||
ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */
|
||||
ATA_HORKAGE_MAX_SEC_128 = (1 << 3), /* Limit max sects to 128 */
|
||||
ATA_HORKAGE_DMA_RW_ONLY = (1 << 4), /* ATAPI DMA for RW only */
|
||||
};
|
||||
|
||||
enum hsm_task_states {
|
||||
HSM_ST_IDLE, /* no command on going */
|
||||
HSM_ST_FIRST, /* (waiting the device to)
|
||||
write CDB or first data block */
|
||||
HSM_ST, /* (waiting the device to) transfer data */
|
||||
HSM_ST_LAST, /* (waiting the device to) complete command */
|
||||
HSM_ST_ERR, /* error */
|
||||
HSM_ST_FIRST, /* (waiting the device to)
|
||||
write CDB or first data block */
|
||||
};
|
||||
|
||||
enum ata_completion_errors {
|
||||
|
||||
@@ -245,7 +245,7 @@ extern void lock_release(struct lockdep_map *lock, int nested,
|
||||
|
||||
# define INIT_LOCKDEP .lockdep_recursion = 0,
|
||||
|
||||
#define lockdep_depth(tsk) ((tsk)->lockdep_depth)
|
||||
#define lockdep_depth(tsk) (debug_locks ? (tsk)->lockdep_depth : 0)
|
||||
|
||||
#else /* !LOCKDEP */
|
||||
|
||||
|
||||
+3
-5
@@ -17,7 +17,7 @@ struct msi_desc {
|
||||
struct {
|
||||
__u8 type : 5; /* {0: unused, 5h:MSI, 11h:MSI-X} */
|
||||
__u8 maskbit : 1; /* mask-pending bit supported ? */
|
||||
__u8 unused : 1;
|
||||
__u8 masked : 1;
|
||||
__u8 is_64 : 1; /* Address size: 0=32bit 1=64bit */
|
||||
__u8 pos; /* Location of the msi capability */
|
||||
__u16 entry_nr; /* specific enabled entry */
|
||||
@@ -32,10 +32,8 @@ struct msi_desc {
|
||||
void __iomem *mask_base;
|
||||
struct pci_dev *dev;
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
/* PM save area for MSIX address/data */
|
||||
struct msi_msg msg_save;
|
||||
#endif
|
||||
/* Last set MSI message */
|
||||
struct msi_msg msg;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -415,6 +415,7 @@ extern void nfs_complete_unlink(struct dentry *);
|
||||
/*
|
||||
* linux/fs/nfs/write.c
|
||||
*/
|
||||
extern int nfs_congestion_kb;
|
||||
extern int nfs_writepage(struct page *page, struct writeback_control *wbc);
|
||||
extern int nfs_writepages(struct address_space *, struct writeback_control *);
|
||||
extern int nfs_flush_incompatible(struct file *file, struct page *page);
|
||||
|
||||
@@ -82,6 +82,7 @@ struct nfs_server {
|
||||
struct rpc_clnt * client_acl; /* ACL RPC client handle */
|
||||
struct nfs_iostats * io_stats; /* I/O statistics */
|
||||
struct backing_dev_info backing_dev_info;
|
||||
atomic_t writeback; /* number of writeback pages */
|
||||
int flags; /* various flags */
|
||||
unsigned int caps; /* server capabilities */
|
||||
unsigned int rsize; /* read size */
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#define PG_NEED_COMMIT 1
|
||||
#define PG_NEED_RESCHED 2
|
||||
#define PG_NEED_FLUSH 3
|
||||
#define PG_FLUSHING 4
|
||||
|
||||
struct nfs_inode;
|
||||
struct nfs_page {
|
||||
@@ -50,8 +49,6 @@ struct nfs_page {
|
||||
};
|
||||
|
||||
#define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags))
|
||||
#define NFS_NEED_COMMIT(req) (test_bit(PG_NEED_COMMIT,&(req)->wb_flags))
|
||||
#define NFS_NEED_RESCHED(req) (test_bit(PG_NEED_RESCHED,&(req)->wb_flags))
|
||||
|
||||
extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx,
|
||||
struct inode *inode,
|
||||
@@ -122,34 +119,6 @@ nfs_list_remove_request(struct nfs_page *req)
|
||||
req->wb_list_head = NULL;
|
||||
}
|
||||
|
||||
static inline int
|
||||
nfs_defer_commit(struct nfs_page *req)
|
||||
{
|
||||
return !test_and_set_bit(PG_NEED_COMMIT, &req->wb_flags);
|
||||
}
|
||||
|
||||
static inline void
|
||||
nfs_clear_commit(struct nfs_page *req)
|
||||
{
|
||||
smp_mb__before_clear_bit();
|
||||
clear_bit(PG_NEED_COMMIT, &req->wb_flags);
|
||||
smp_mb__after_clear_bit();
|
||||
}
|
||||
|
||||
static inline int
|
||||
nfs_defer_reschedule(struct nfs_page *req)
|
||||
{
|
||||
return !test_and_set_bit(PG_NEED_RESCHED, &req->wb_flags);
|
||||
}
|
||||
|
||||
static inline void
|
||||
nfs_clear_reschedule(struct nfs_page *req)
|
||||
{
|
||||
smp_mb__before_clear_bit();
|
||||
clear_bit(PG_NEED_RESCHED, &req->wb_flags);
|
||||
smp_mb__after_clear_bit();
|
||||
}
|
||||
|
||||
static inline struct nfs_page *
|
||||
nfs_list_entry(struct list_head *head)
|
||||
{
|
||||
|
||||
@@ -209,11 +209,6 @@ static inline void pci_add_saved_cap(struct pci_dev *pci_dev,
|
||||
hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space);
|
||||
}
|
||||
|
||||
static inline void pci_remove_saved_cap(struct pci_cap_saved_state *cap)
|
||||
{
|
||||
hlist_del(&cap->next);
|
||||
}
|
||||
|
||||
/*
|
||||
* For PCI devices, the region numbers are assigned this way:
|
||||
*
|
||||
|
||||
@@ -296,6 +296,7 @@
|
||||
#define PCI_MSIX_FLAGS 2
|
||||
#define PCI_MSIX_FLAGS_QSIZE 0x7FF
|
||||
#define PCI_MSIX_FLAGS_ENABLE (1 << 15)
|
||||
#define PCI_MSIX_FLAGS_MASKALL (1 << 14)
|
||||
#define PCI_MSIX_FLAGS_BIRMASK (7 << 0)
|
||||
#define PCI_MSIX_FLAGS_BITMASK (1 << 0)
|
||||
|
||||
|
||||
@@ -99,4 +99,8 @@ extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *,
|
||||
loff_t *, size_t, unsigned int,
|
||||
splice_actor *);
|
||||
|
||||
extern ssize_t __splice_from_pipe(struct pipe_inode_info *, struct file *,
|
||||
loff_t *, size_t, unsigned int,
|
||||
splice_actor *);
|
||||
|
||||
#endif
|
||||
|
||||
+23
-31
@@ -97,9 +97,9 @@ struct plist_node {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* #PLIST_HEAD_INIT - static struct plist_head initializer
|
||||
*
|
||||
* PLIST_HEAD_INIT - static struct plist_head initializer
|
||||
* @head: struct plist_head variable name
|
||||
* @_lock: lock to initialize for this list
|
||||
*/
|
||||
#define PLIST_HEAD_INIT(head, _lock) \
|
||||
{ \
|
||||
@@ -109,8 +109,7 @@ struct plist_node {
|
||||
}
|
||||
|
||||
/**
|
||||
* #PLIST_NODE_INIT - static struct plist_node initializer
|
||||
*
|
||||
* PLIST_NODE_INIT - static struct plist_node initializer
|
||||
* @node: struct plist_node variable name
|
||||
* @__prio: initial node priority
|
||||
*/
|
||||
@@ -122,8 +121,8 @@ struct plist_node {
|
||||
|
||||
/**
|
||||
* plist_head_init - dynamic struct plist_head initializer
|
||||
*
|
||||
* @head: &struct plist_head pointer
|
||||
* @lock: list spinlock, remembered for debugging
|
||||
*/
|
||||
static inline void
|
||||
plist_head_init(struct plist_head *head, spinlock_t *lock)
|
||||
@@ -137,7 +136,6 @@ plist_head_init(struct plist_head *head, spinlock_t *lock)
|
||||
|
||||
/**
|
||||
* plist_node_init - Dynamic struct plist_node initializer
|
||||
*
|
||||
* @node: &struct plist_node pointer
|
||||
* @prio: initial node priority
|
||||
*/
|
||||
@@ -152,49 +150,46 @@ extern void plist_del(struct plist_node *node, struct plist_head *head);
|
||||
|
||||
/**
|
||||
* plist_for_each - iterate over the plist
|
||||
*
|
||||
* @pos1: the type * to use as a loop counter.
|
||||
* @head: the head for your list.
|
||||
* @pos: the type * to use as a loop counter
|
||||
* @head: the head for your list
|
||||
*/
|
||||
#define plist_for_each(pos, head) \
|
||||
list_for_each_entry(pos, &(head)->node_list, plist.node_list)
|
||||
|
||||
/**
|
||||
* plist_for_each_entry_safe - iterate over a plist of given type safe
|
||||
* against removal of list entry
|
||||
* plist_for_each_safe - iterate safely over a plist of given type
|
||||
* @pos: the type * to use as a loop counter
|
||||
* @n: another type * to use as temporary storage
|
||||
* @head: the head for your list
|
||||
*
|
||||
* @pos1: the type * to use as a loop counter.
|
||||
* @n1: another type * to use as temporary storage
|
||||
* @head: the head for your list.
|
||||
* Iterate over a plist of given type, safe against removal of list entry.
|
||||
*/
|
||||
#define plist_for_each_safe(pos, n, head) \
|
||||
list_for_each_entry_safe(pos, n, &(head)->node_list, plist.node_list)
|
||||
|
||||
/**
|
||||
* plist_for_each_entry - iterate over list of given type
|
||||
*
|
||||
* @pos: the type * to use as a loop counter.
|
||||
* @head: the head for your list.
|
||||
* @member: the name of the list_struct within the struct.
|
||||
* @pos: the type * to use as a loop counter
|
||||
* @head: the head for your list
|
||||
* @mem: the name of the list_struct within the struct
|
||||
*/
|
||||
#define plist_for_each_entry(pos, head, mem) \
|
||||
list_for_each_entry(pos, &(head)->node_list, mem.plist.node_list)
|
||||
|
||||
/**
|
||||
* plist_for_each_entry_safe - iterate over list of given type safe against
|
||||
* removal of list entry
|
||||
*
|
||||
* @pos: the type * to use as a loop counter.
|
||||
* plist_for_each_entry_safe - iterate safely over list of given type
|
||||
* @pos: the type * to use as a loop counter
|
||||
* @n: another type * to use as temporary storage
|
||||
* @head: the head for your list.
|
||||
* @m: the name of the list_struct within the struct.
|
||||
* @head: the head for your list
|
||||
* @m: the name of the list_struct within the struct
|
||||
*
|
||||
* Iterate over list of given type, safe against removal of list entry.
|
||||
*/
|
||||
#define plist_for_each_entry_safe(pos, n, head, m) \
|
||||
list_for_each_entry_safe(pos, n, &(head)->node_list, m.plist.node_list)
|
||||
|
||||
/**
|
||||
* plist_head_empty - return !0 if a plist_head is empty
|
||||
*
|
||||
* @head: &struct plist_head pointer
|
||||
*/
|
||||
static inline int plist_head_empty(const struct plist_head *head)
|
||||
@@ -204,7 +199,6 @@ static inline int plist_head_empty(const struct plist_head *head)
|
||||
|
||||
/**
|
||||
* plist_node_empty - return !0 if plist_node is not on a list
|
||||
*
|
||||
* @node: &struct plist_node pointer
|
||||
*/
|
||||
static inline int plist_node_empty(const struct plist_node *node)
|
||||
@@ -216,10 +210,9 @@ static inline int plist_node_empty(const struct plist_node *node)
|
||||
|
||||
/**
|
||||
* plist_first_entry - get the struct for the first entry
|
||||
*
|
||||
* @ptr: the &struct plist_head pointer.
|
||||
* @type: the type of the struct this is embedded in.
|
||||
* @member: the name of the list_struct within the struct.
|
||||
* @head: the &struct plist_head pointer
|
||||
* @type: the type of the struct this is embedded in
|
||||
* @member: the name of the list_struct within the struct
|
||||
*/
|
||||
#ifdef CONFIG_DEBUG_PI_LIST
|
||||
# define plist_first_entry(head, type, member) \
|
||||
@@ -234,7 +227,6 @@ static inline int plist_node_empty(const struct plist_node *node)
|
||||
|
||||
/**
|
||||
* plist_first - return the first node (and thus, highest priority)
|
||||
*
|
||||
* @head: the &struct plist_head pointer
|
||||
*
|
||||
* Assumes the plist is _not_ empty.
|
||||
|
||||
@@ -104,6 +104,7 @@ struct mdk_rdev_s
|
||||
* for reporting to userspace and storing
|
||||
* in superblock.
|
||||
*/
|
||||
struct work_struct del_work; /* used for delayed sysfs removal */
|
||||
};
|
||||
|
||||
struct mddev_s
|
||||
|
||||
@@ -1324,7 +1324,7 @@ struct security_operations {
|
||||
|
||||
void (*d_instantiate) (struct dentry *dentry, struct inode *inode);
|
||||
|
||||
int (*getprocattr)(struct task_struct *p, char *name, void *value, size_t size);
|
||||
int (*getprocattr)(struct task_struct *p, char *name, char **value);
|
||||
int (*setprocattr)(struct task_struct *p, char *name, void *value, size_t size);
|
||||
int (*secid_to_secctx)(u32 secid, char **secdata, u32 *seclen);
|
||||
void (*release_secctx)(char *secdata, u32 seclen);
|
||||
@@ -2092,9 +2092,9 @@ static inline void security_d_instantiate (struct dentry *dentry, struct inode *
|
||||
security_ops->d_instantiate (dentry, inode);
|
||||
}
|
||||
|
||||
static inline int security_getprocattr(struct task_struct *p, char *name, void *value, size_t size)
|
||||
static inline int security_getprocattr(struct task_struct *p, char *name, char **value)
|
||||
{
|
||||
return security_ops->getprocattr(p, name, value, size);
|
||||
return security_ops->getprocattr(p, name, value);
|
||||
}
|
||||
|
||||
static inline int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size)
|
||||
@@ -2749,7 +2749,7 @@ static inline int security_sem_semop (struct sem_array * sma,
|
||||
static inline void security_d_instantiate (struct dentry *dentry, struct inode *inode)
|
||||
{ }
|
||||
|
||||
static inline int security_getprocattr(struct task_struct *p, char *name, void *value, size_t size)
|
||||
static inline int security_getprocattr(struct task_struct *p, char *name, char **value)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
+10
-5
@@ -188,7 +188,7 @@ enum {
|
||||
* @sk: Socket we are owned by
|
||||
* @tstamp: Time we arrived
|
||||
* @dev: Device we arrived on/are leaving by
|
||||
* @input_dev: Device we arrived on
|
||||
* @iif: ifindex of device we arrived on
|
||||
* @h: Transport layer header
|
||||
* @nh: Network layer header
|
||||
* @mac: Link layer header
|
||||
@@ -235,7 +235,8 @@ struct sk_buff {
|
||||
struct sock *sk;
|
||||
struct skb_timeval tstamp;
|
||||
struct net_device *dev;
|
||||
struct net_device *input_dev;
|
||||
int iif;
|
||||
/* 4 byte hole on 64 bit*/
|
||||
|
||||
union {
|
||||
struct tcphdr *th;
|
||||
@@ -345,9 +346,6 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
|
||||
return __alloc_skb(size, priority, 1, -1);
|
||||
}
|
||||
|
||||
extern struct sk_buff *alloc_skb_from_cache(struct kmem_cache *cp,
|
||||
unsigned int size,
|
||||
gfp_t priority);
|
||||
extern void kfree_skbmem(struct sk_buff *skb);
|
||||
extern struct sk_buff *skb_clone(struct sk_buff *skb,
|
||||
gfp_t priority);
|
||||
@@ -621,6 +619,13 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
|
||||
list->qlen = 0;
|
||||
}
|
||||
|
||||
static inline void skb_queue_head_init_class(struct sk_buff_head *list,
|
||||
struct lock_class_key *class)
|
||||
{
|
||||
skb_queue_head_init(list);
|
||||
lockdep_set_class(&list->lock, class);
|
||||
}
|
||||
|
||||
/*
|
||||
* Insert an sk_buff at the start of a list.
|
||||
*
|
||||
|
||||
@@ -25,7 +25,6 @@ struct spi_bitbang {
|
||||
spinlock_t lock;
|
||||
struct list_head queue;
|
||||
u8 busy;
|
||||
u8 shutdown;
|
||||
u8 use_dma;
|
||||
|
||||
struct spi_master *master;
|
||||
|
||||
@@ -580,6 +580,7 @@ enum {
|
||||
NET_IPV6_RTR_PROBE_INTERVAL=21,
|
||||
NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22,
|
||||
NET_IPV6_PROXY_NDP=23,
|
||||
NET_IPV6_ACCEPT_SOURCE_ROUTE=25,
|
||||
__NET_IPV6_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#define _SYSFS_H_
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/list.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
@@ -78,6 +79,9 @@ struct sysfs_ops {
|
||||
|
||||
#ifdef CONFIG_SYSFS
|
||||
|
||||
extern int sysfs_schedule_callback(struct kobject *kobj,
|
||||
void (*func)(void *), void *data);
|
||||
|
||||
extern int __must_check
|
||||
sysfs_create_dir(struct kobject *, struct dentry *);
|
||||
|
||||
@@ -132,6 +136,12 @@ extern int __must_check sysfs_init(void);
|
||||
|
||||
#else /* CONFIG_SYSFS */
|
||||
|
||||
static inline int sysfs_schedule_callback(struct kobject *kobj,
|
||||
void (*func)(void *), void *data)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow)
|
||||
{
|
||||
return 0;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#define TASKSTATS_VERSION 3
|
||||
#define TASKSTATS_VERSION 4
|
||||
#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN
|
||||
* in linux/sched.h */
|
||||
|
||||
@@ -66,7 +66,7 @@ struct taskstats {
|
||||
/* Delay waiting for cpu, while runnable
|
||||
* count, delay_total NOT updated atomically
|
||||
*/
|
||||
__u64 cpu_count;
|
||||
__u64 cpu_count __attribute__((aligned(8)));
|
||||
__u64 cpu_delay_total;
|
||||
|
||||
/* Following four fields atomically updated using task->delays->lock */
|
||||
@@ -101,14 +101,17 @@ struct taskstats {
|
||||
|
||||
/* Basic Accounting Fields start */
|
||||
char ac_comm[TS_COMM_LEN]; /* Command name */
|
||||
__u8 ac_sched; /* Scheduling discipline */
|
||||
__u8 ac_sched __attribute__((aligned(8)));
|
||||
/* Scheduling discipline */
|
||||
__u8 ac_pad[3];
|
||||
__u32 ac_uid; /* User ID */
|
||||
__u32 ac_uid __attribute__((aligned(8)));
|
||||
/* User ID */
|
||||
__u32 ac_gid; /* Group ID */
|
||||
__u32 ac_pid; /* Process ID */
|
||||
__u32 ac_ppid; /* Parent process ID */
|
||||
__u32 ac_btime; /* Begin time [sec since 1970] */
|
||||
__u64 ac_etime; /* Elapsed time [usec] */
|
||||
__u64 ac_etime __attribute__((aligned(8)));
|
||||
/* Elapsed time [usec] */
|
||||
__u64 ac_utime; /* User CPU time [usec] */
|
||||
__u64 ac_stime; /* SYstem CPU time [usec] */
|
||||
__u64 ac_minflt; /* Minor Page Fault Count */
|
||||
|
||||
@@ -649,10 +649,10 @@ struct ufs2_inode {
|
||||
__fs32 ui_blksize; /* 12: Inode blocksize. */
|
||||
__fs64 ui_size; /* 16: File byte count. */
|
||||
__fs64 ui_blocks; /* 24: Bytes actually held. */
|
||||
struct ufs_timeval ui_atime; /* 32: Last access time. */
|
||||
struct ufs_timeval ui_mtime; /* 40: Last modified time. */
|
||||
struct ufs_timeval ui_ctime; /* 48: Last inode change time. */
|
||||
struct ufs_timeval ui_birthtime; /* 56: Inode creation time. */
|
||||
__fs64 ui_atime; /* 32: Last access time. */
|
||||
__fs64 ui_mtime; /* 40: Last modified time. */
|
||||
__fs64 ui_ctime; /* 48: Last inode change time. */
|
||||
__fs64 ui_birthtime; /* 56: Inode creation time. */
|
||||
__fs32 ui_mtimensec; /* 64: Last modified time. */
|
||||
__fs32 ui_atimensec; /* 68: Last access time. */
|
||||
__fs32 ui_ctimensec; /* 72: Last inode change time. */
|
||||
|
||||
@@ -70,6 +70,8 @@ static inline int unshare_utsname(unsigned long unshare_flags,
|
||||
|
||||
static inline int copy_utsname(int flags, struct task_struct *tsk)
|
||||
{
|
||||
if (flags & CLONE_NEWUTS)
|
||||
return -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
static inline void put_uts_ns(struct uts_namespace *ns)
|
||||
|
||||
@@ -83,6 +83,7 @@ void reset_vc(struct vc_data *vc);
|
||||
#define CON_BUF_SIZE (CONFIG_BASE_SMALL ? 256 : PAGE_SIZE)
|
||||
extern char con_buf[CON_BUF_SIZE];
|
||||
extern struct semaphore con_buf_sem;
|
||||
extern char vt_dont_switch;
|
||||
|
||||
struct vt_spawn_console {
|
||||
spinlock_t lock;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
* This file define a set of standard wireless extensions
|
||||
*
|
||||
* Version : 21 14.3.06
|
||||
* Version : 22 16.3.07
|
||||
*
|
||||
* Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com>
|
||||
* Copyright (c) 1997-2006 Jean Tourrilhes, All Rights Reserved.
|
||||
* Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_WIRELESS_H
|
||||
@@ -85,7 +85,7 @@
|
||||
* (there is some stuff that will be added in the future...)
|
||||
* I just plan to increment with each new version.
|
||||
*/
|
||||
#define WIRELESS_EXT 21
|
||||
#define WIRELESS_EXT 22
|
||||
|
||||
/*
|
||||
* Changes :
|
||||
@@ -221,6 +221,10 @@
|
||||
* - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers
|
||||
* - Power/Retry relative values no longer * 100000
|
||||
* - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI
|
||||
*
|
||||
* V21 to V22
|
||||
* ----------
|
||||
* - Prevent leaking of kernel space in stream on 64 bits.
|
||||
*/
|
||||
|
||||
/**************************** CONSTANTS ****************************/
|
||||
@@ -1085,4 +1089,15 @@ struct iw_event
|
||||
#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \
|
||||
IW_EV_POINT_OFF)
|
||||
|
||||
/* Size of the Event prefix when packed in stream */
|
||||
#define IW_EV_LCP_PK_LEN (4)
|
||||
/* Size of the various events when packed in stream */
|
||||
#define IW_EV_CHAR_PK_LEN (IW_EV_LCP_PK_LEN + IFNAMSIZ)
|
||||
#define IW_EV_UINT_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(__u32))
|
||||
#define IW_EV_FREQ_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
|
||||
#define IW_EV_PARAM_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
|
||||
#define IW_EV_ADDR_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
|
||||
#define IW_EV_QUAL_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
|
||||
#define IW_EV_POINT_PK_LEN (IW_EV_LCP_LEN + 4)
|
||||
|
||||
#endif /* _LINUX_WIRELESS_H */
|
||||
|
||||
Reference in New Issue
Block a user