diff options
Diffstat (limited to 'include/linux')
39 files changed, 238 insertions, 100 deletions
diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h index c8fdb6e658e1..110c600c885f 100644 --- a/include/linux/agpgart.h +++ b/include/linux/agpgart.h | |||
| @@ -52,7 +52,6 @@ | |||
| 52 | 52 | ||
| 53 | #ifndef __KERNEL__ | 53 | #ifndef __KERNEL__ |
| 54 | #include <linux/types.h> | 54 | #include <linux/types.h> |
| 55 | #include <asm/types.h> | ||
| 56 | 55 | ||
| 57 | struct agp_version { | 56 | struct agp_version { |
| 58 | __u16 major; | 57 | __u16 major; |
diff --git a/include/linux/atm_idt77105.h b/include/linux/atm_idt77105.h index 05621cf20709..8b724000aa50 100644 --- a/include/linux/atm_idt77105.h +++ b/include/linux/atm_idt77105.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | #ifndef LINUX_ATM_IDT77105_H | 7 | #ifndef LINUX_ATM_IDT77105_H |
| 8 | #define LINUX_ATM_IDT77105_H | 8 | #define LINUX_ATM_IDT77105_H |
| 9 | 9 | ||
| 10 | #include <asm/types.h> | 10 | #include <linux/types.h> |
| 11 | #include <linux/atmioc.h> | 11 | #include <linux/atmioc.h> |
| 12 | #include <linux/atmdev.h> | 12 | #include <linux/atmdev.h> |
| 13 | 13 | ||
diff --git a/include/linux/capi.h b/include/linux/capi.h index fdebaaa9f66e..65100d6cb89b 100644 --- a/include/linux/capi.h +++ b/include/linux/capi.h | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #ifndef __LINUX_CAPI_H__ | 12 | #ifndef __LINUX_CAPI_H__ |
| 13 | #define __LINUX_CAPI_H__ | 13 | #define __LINUX_CAPI_H__ |
| 14 | 14 | ||
| 15 | #include <asm/types.h> | 15 | #include <linux/types.h> |
| 16 | #include <linux/ioctl.h> | 16 | #include <linux/ioctl.h> |
| 17 | #ifndef __KERNEL__ | 17 | #ifndef __KERNEL__ |
| 18 | #include <linux/kernelcapi.h> | 18 | #include <linux/kernelcapi.h> |
diff --git a/include/linux/compat.h b/include/linux/compat.h index e88f3ecf38b4..3fd2194ff573 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -280,5 +280,18 @@ asmlinkage long compat_sys_timerfd_settime(int ufd, int flags, | |||
| 280 | asmlinkage long compat_sys_timerfd_gettime(int ufd, | 280 | asmlinkage long compat_sys_timerfd_gettime(int ufd, |
| 281 | struct compat_itimerspec __user *otmr); | 281 | struct compat_itimerspec __user *otmr); |
| 282 | 282 | ||
| 283 | asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page, | ||
| 284 | __u32 __user *pages, | ||
| 285 | const int __user *nodes, | ||
| 286 | int __user *status, | ||
| 287 | int flags); | ||
| 288 | asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, | ||
| 289 | struct compat_timeval __user *t); | ||
| 290 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename, | ||
| 291 | struct compat_stat __user *statbuf, | ||
| 292 | int flag); | ||
| 293 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, | ||
| 294 | int flags, int mode); | ||
| 295 | |||
| 283 | #endif /* CONFIG_COMPAT */ | 296 | #endif /* CONFIG_COMPAT */ |
| 284 | #endif /* _LINUX_COMPAT_H */ | 297 | #endif /* _LINUX_COMPAT_H */ |
diff --git a/include/linux/connector.h b/include/linux/connector.h index 5c7f9468f753..34f2789d9b9b 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | #ifndef __CONNECTOR_H | 22 | #ifndef __CONNECTOR_H |
| 23 | #define __CONNECTOR_H | 23 | #define __CONNECTOR_H |
| 24 | 24 | ||
| 25 | #include <asm/types.h> | 25 | #include <linux/types.h> |
| 26 | 26 | ||
| 27 | #define CN_IDX_CONNECTOR 0xffffffff | 27 | #define CN_IDX_CONNECTOR 0xffffffff |
| 28 | #define CN_VAL_CONNECTOR 0xffffffff | 28 | #define CN_VAL_CONNECTOR 0xffffffff |
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h index 2d3d1e04ba92..d06fbf286346 100644 --- a/include/linux/cyclades.h +++ b/include/linux/cyclades.h | |||
| @@ -150,8 +150,6 @@ struct CYZ_BOOT_CTRL { | |||
| 150 | * architectures and compilers. | 150 | * architectures and compilers. |
| 151 | */ | 151 | */ |
| 152 | 152 | ||
| 153 | #include <asm/types.h> | ||
| 154 | |||
| 155 | typedef __u64 ucdouble; /* 64 bits, unsigned */ | 153 | typedef __u64 ucdouble; /* 64 bits, unsigned */ |
| 156 | typedef __u32 uclong; /* 32 bits, unsigned */ | 154 | typedef __u32 uclong; /* 32 bits, unsigned */ |
| 157 | typedef __u16 ucshort; /* 16 bits, unsigned */ | 155 | typedef __u16 ucshort; /* 16 bits, unsigned */ |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index 23936b16426b..0f5c33b0bd3e 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
| @@ -162,6 +162,13 @@ static inline struct dentry *debugfs_create_x32(const char *name, mode_t mode, | |||
| 162 | return ERR_PTR(-ENODEV); | 162 | return ERR_PTR(-ENODEV); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | struct dentry *debugfs_create_size_t(const char *name, mode_t mode, | ||
| 166 | struct dentry *parent, | ||
| 167 | size_t *value) | ||
| 168 | { | ||
| 169 | return ERR_PTR(-ENODEV); | ||
| 170 | } | ||
| 171 | |||
| 165 | static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, | 172 | static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, |
| 166 | struct dentry *parent, | 173 | struct dentry *parent, |
| 167 | u32 *value) | 174 | u32 *value) |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index c73f1e2b59b7..3e0f64c335c8 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -297,6 +297,11 @@ static inline void async_tx_ack(struct dma_async_tx_descriptor *tx) | |||
| 297 | tx->flags |= DMA_CTRL_ACK; | 297 | tx->flags |= DMA_CTRL_ACK; |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | static inline void async_tx_clear_ack(struct dma_async_tx_descriptor *tx) | ||
| 301 | { | ||
| 302 | tx->flags &= ~DMA_CTRL_ACK; | ||
| 303 | } | ||
| 304 | |||
| 300 | static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx) | 305 | static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx) |
| 301 | { | 306 | { |
| 302 | return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK; | 307 | return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK; |
| @@ -400,11 +405,16 @@ static inline enum dma_status dma_async_is_complete(dma_cookie_t cookie, | |||
| 400 | enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); | 405 | enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); |
| 401 | #ifdef CONFIG_DMA_ENGINE | 406 | #ifdef CONFIG_DMA_ENGINE |
| 402 | enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); | 407 | enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); |
| 408 | void dma_issue_pending_all(void); | ||
| 403 | #else | 409 | #else |
| 404 | static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx) | 410 | static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx) |
| 405 | { | 411 | { |
| 406 | return DMA_SUCCESS; | 412 | return DMA_SUCCESS; |
| 407 | } | 413 | } |
| 414 | static inline void dma_issue_pending_all(void) | ||
| 415 | { | ||
| 416 | do { } while (0); | ||
| 417 | } | ||
| 408 | #endif | 418 | #endif |
| 409 | 419 | ||
| 410 | /* --- DMA device --- */ | 420 | /* --- DMA device --- */ |
| @@ -413,7 +423,6 @@ int dma_async_device_register(struct dma_device *device); | |||
| 413 | void dma_async_device_unregister(struct dma_device *device); | 423 | void dma_async_device_unregister(struct dma_device *device); |
| 414 | void dma_run_dependencies(struct dma_async_tx_descriptor *tx); | 424 | void dma_run_dependencies(struct dma_async_tx_descriptor *tx); |
| 415 | struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); | 425 | struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); |
| 416 | void dma_issue_pending_all(void); | ||
| 417 | #define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) | 426 | #define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) |
| 418 | struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param); | 427 | struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param); |
| 419 | void dma_release_channel(struct dma_chan *chan); | 428 | void dma_release_channel(struct dma_chan *chan); |
diff --git a/include/linux/fb.h b/include/linux/fb.h index 1ee63df5be92..818fe21257e8 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef _LINUX_FB_H | 1 | #ifndef _LINUX_FB_H |
| 2 | #define _LINUX_FB_H | 2 | #define _LINUX_FB_H |
| 3 | 3 | ||
| 4 | #include <asm/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/i2c.h> | 5 | #include <linux/i2c.h> |
| 6 | 6 | ||
| 7 | struct dentry; | 7 | struct dentry; |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 3644f6323384..194da5a4b0d6 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -871,7 +871,7 @@ struct ide_host { | |||
| 871 | ide_hwif_t *cur_port; /* for hosts requiring serialization */ | 871 | ide_hwif_t *cur_port; /* for hosts requiring serialization */ |
| 872 | 872 | ||
| 873 | /* used for hosts requiring serialization */ | 873 | /* used for hosts requiring serialization */ |
| 874 | volatile long host_busy; | 874 | volatile unsigned long host_busy; |
| 875 | }; | 875 | }; |
| 876 | 876 | ||
| 877 | #define IDE_HOST_BUSY 0 | 877 | #define IDE_HOST_BUSY 0 |
diff --git a/include/linux/if_frad.h b/include/linux/if_frad.h index 5c34240de746..60e16a551dd6 100644 --- a/include/linux/if_frad.h +++ b/include/linux/if_frad.h | |||
| @@ -26,8 +26,6 @@ | |||
| 26 | 26 | ||
| 27 | #include <linux/if.h> | 27 | #include <linux/if.h> |
| 28 | 28 | ||
| 29 | #if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE) | ||
| 30 | |||
| 31 | /* Structures and constants associated with the DLCI device driver */ | 29 | /* Structures and constants associated with the DLCI device driver */ |
| 32 | 30 | ||
| 33 | struct dlci_add | 31 | struct dlci_add |
| @@ -127,6 +125,8 @@ struct frad_conf | |||
| 127 | 125 | ||
| 128 | #ifdef __KERNEL__ | 126 | #ifdef __KERNEL__ |
| 129 | 127 | ||
| 128 | #if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE) | ||
| 129 | |||
| 130 | /* these are the fields of an RFC 1490 header */ | 130 | /* these are the fields of an RFC 1490 header */ |
| 131 | struct frhdr | 131 | struct frhdr |
| 132 | { | 132 | { |
| @@ -190,12 +190,10 @@ struct frad_local | |||
| 190 | int buffer; /* current buffer for S508 firmware */ | 190 | int buffer; /* current buffer for S508 firmware */ |
| 191 | }; | 191 | }; |
| 192 | 192 | ||
| 193 | #endif /* __KERNEL__ */ | ||
| 194 | |||
| 195 | #endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */ | 193 | #endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */ |
| 196 | 194 | ||
| 197 | #ifdef __KERNEL__ | ||
| 198 | extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *)); | 195 | extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *)); |
| 199 | #endif | 196 | |
| 197 | #endif /* __KERNEL__ */ | ||
| 200 | 198 | ||
| 201 | #endif | 199 | #endif |
diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h index a7d6a2234b31..c7a66882b6d0 100644 --- a/include/linux/if_pppol2tp.h +++ b/include/linux/if_pppol2tp.h | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | #ifndef __LINUX_IF_PPPOL2TP_H | 15 | #ifndef __LINUX_IF_PPPOL2TP_H |
| 16 | #define __LINUX_IF_PPPOL2TP_H | 16 | #define __LINUX_IF_PPPOL2TP_H |
| 17 | 17 | ||
| 18 | #include <asm/types.h> | 18 | #include <linux/types.h> |
| 19 | 19 | ||
| 20 | #ifdef __KERNEL__ | 20 | #ifdef __KERNEL__ |
| 21 | #include <linux/in.h> | 21 | #include <linux/in.h> |
diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h index 6fb7f1788570..30c88b2245ff 100644 --- a/include/linux/if_pppox.h +++ b/include/linux/if_pppox.h | |||
| @@ -17,7 +17,7 @@ | |||
| 17 | #define __LINUX_IF_PPPOX_H | 17 | #define __LINUX_IF_PPPOX_H |
| 18 | 18 | ||
| 19 | 19 | ||
| 20 | #include <asm/types.h> | 20 | #include <linux/types.h> |
| 21 | #include <asm/byteorder.h> | 21 | #include <asm/byteorder.h> |
| 22 | 22 | ||
| 23 | #ifdef __KERNEL__ | 23 | #ifdef __KERNEL__ |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 2f3c2d4ef73b..ea0ea1a4c36f 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
| @@ -48,6 +48,12 @@ extern struct fs_struct init_fs; | |||
| 48 | .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \ | 48 | .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \ |
| 49 | .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \ | 49 | .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \ |
| 50 | .rlim = INIT_RLIMITS, \ | 50 | .rlim = INIT_RLIMITS, \ |
| 51 | .cputime = { .totals = { \ | ||
| 52 | .utime = cputime_zero, \ | ||
| 53 | .stime = cputime_zero, \ | ||
| 54 | .sum_exec_runtime = 0, \ | ||
| 55 | .lock = __SPIN_LOCK_UNLOCKED(sig.cputime.totals.lock), \ | ||
| 56 | }, }, \ | ||
| 51 | } | 57 | } |
| 52 | 58 | ||
| 53 | extern struct nsproxy init_nsproxy; | 59 | extern struct nsproxy init_nsproxy; |
diff --git a/include/linux/input.h b/include/linux/input.h index 9a6355f74db2..1249a0c20a38 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include <sys/time.h> | 16 | #include <sys/time.h> |
| 17 | #include <sys/ioctl.h> | 17 | #include <sys/ioctl.h> |
| 18 | #include <sys/types.h> | 18 | #include <sys/types.h> |
| 19 | #include <asm/types.h> | 19 | #include <linux/types.h> |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
| 22 | /* | 22 | /* |
diff --git a/include/linux/ioport.h b/include/linux/ioport.h index f6bb2ca8e3ba..32e4b2f72294 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h | |||
| @@ -143,7 +143,8 @@ static inline unsigned long resource_type(struct resource *res) | |||
| 143 | 143 | ||
| 144 | extern struct resource * __request_region(struct resource *, | 144 | extern struct resource * __request_region(struct resource *, |
| 145 | resource_size_t start, | 145 | resource_size_t start, |
| 146 | resource_size_t n, const char *name, int relaxed); | 146 | resource_size_t n, |
| 147 | const char *name, int flags); | ||
| 147 | 148 | ||
| 148 | /* Compatibility cruft */ | 149 | /* Compatibility cruft */ |
| 149 | #define release_region(start,n) __release_region(&ioport_resource, (start), (n)) | 150 | #define release_region(start,n) __release_region(&ioport_resource, (start), (n)) |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index 6384b19efe64..64246dce5663 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
| @@ -614,6 +614,8 @@ struct transaction_s | |||
| 614 | * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the | 614 | * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the |
| 615 | * number that will fit in j_blocksize | 615 | * number that will fit in j_blocksize |
| 616 | * @j_last_sync_writer: most recent pid which did a synchronous write | 616 | * @j_last_sync_writer: most recent pid which did a synchronous write |
| 617 | * @j_average_commit_time: the average amount of time in nanoseconds it | ||
| 618 | * takes to commit a transaction to the disk. | ||
| 617 | * @j_private: An opaque pointer to fs-private information. | 619 | * @j_private: An opaque pointer to fs-private information. |
| 618 | */ | 620 | */ |
| 619 | 621 | ||
diff --git a/include/linux/joystick.h b/include/linux/joystick.h index b5e051295a67..9e20c29c1e14 100644 --- a/include/linux/joystick.h +++ b/include/linux/joystick.h | |||
| @@ -27,7 +27,7 @@ | |||
| 27 | * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic | 27 | * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic |
| 28 | */ | 28 | */ |
| 29 | 29 | ||
| 30 | #include <asm/types.h> | 30 | #include <linux/types.h> |
| 31 | #include <linux/input.h> | 31 | #include <linux/input.h> |
| 32 | 32 | ||
| 33 | /* | 33 | /* |
diff --git a/include/linux/klist.h b/include/linux/klist.h index d5a27af9dba5..e91a4e59b771 100644 --- a/include/linux/klist.h +++ b/include/linux/klist.h | |||
| @@ -22,7 +22,7 @@ struct klist { | |||
| 22 | struct list_head k_list; | 22 | struct list_head k_list; |
| 23 | void (*get)(struct klist_node *); | 23 | void (*get)(struct klist_node *); |
| 24 | void (*put)(struct klist_node *); | 24 | void (*put)(struct klist_node *); |
| 25 | }; | 25 | } __attribute__ ((aligned (4))); |
| 26 | 26 | ||
| 27 | #define KLIST_INIT(_name, _get, _put) \ | 27 | #define KLIST_INIT(_name, _get, _put) \ |
| 28 | { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ | 28 | { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ |
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 35525ac63337..5715f1907601 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | * Note: you must update KVM_API_VERSION if you change this interface. | 7 | * Note: you must update KVM_API_VERSION if you change this interface. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <asm/types.h> | 10 | #include <linux/types.h> |
| 11 | #include <linux/compiler.h> | 11 | #include <linux/compiler.h> |
| 12 | #include <linux/ioctl.h> | 12 | #include <linux/ioctl.h> |
| 13 | #include <asm/kvm.h> | 13 | #include <asm/kvm.h> |
diff --git a/include/linux/libata.h b/include/linux/libata.h index b6b8a7f3ec66..2c6bd66209ff 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -401,12 +401,14 @@ enum { | |||
| 401 | ATA_TIMING_CYC8B, | 401 | ATA_TIMING_CYC8B, |
| 402 | ATA_TIMING_ACTIVE = (1 << 4), | 402 | ATA_TIMING_ACTIVE = (1 << 4), |
| 403 | ATA_TIMING_RECOVER = (1 << 5), | 403 | ATA_TIMING_RECOVER = (1 << 5), |
| 404 | ATA_TIMING_CYCLE = (1 << 6), | 404 | ATA_TIMING_DMACK_HOLD = (1 << 6), |
| 405 | ATA_TIMING_UDMA = (1 << 7), | 405 | ATA_TIMING_CYCLE = (1 << 7), |
| 406 | ATA_TIMING_UDMA = (1 << 8), | ||
| 406 | ATA_TIMING_ALL = ATA_TIMING_SETUP | ATA_TIMING_ACT8B | | 407 | ATA_TIMING_ALL = ATA_TIMING_SETUP | ATA_TIMING_ACT8B | |
| 407 | ATA_TIMING_REC8B | ATA_TIMING_CYC8B | | 408 | ATA_TIMING_REC8B | ATA_TIMING_CYC8B | |
| 408 | ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER | | 409 | ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER | |
| 409 | ATA_TIMING_CYCLE | ATA_TIMING_UDMA, | 410 | ATA_TIMING_DMACK_HOLD | ATA_TIMING_CYCLE | |
| 411 | ATA_TIMING_UDMA, | ||
| 410 | }; | 412 | }; |
| 411 | 413 | ||
| 412 | enum ata_xfer_mask { | 414 | enum ata_xfer_mask { |
| @@ -866,6 +868,7 @@ struct ata_timing { | |||
| 866 | unsigned short cyc8b; /* t0 for 8-bit I/O */ | 868 | unsigned short cyc8b; /* t0 for 8-bit I/O */ |
| 867 | unsigned short active; /* t2 or tD */ | 869 | unsigned short active; /* t2 or tD */ |
| 868 | unsigned short recover; /* t2i or tK */ | 870 | unsigned short recover; /* t2i or tK */ |
| 871 | unsigned short dmack_hold; /* tj */ | ||
| 869 | unsigned short cycle; /* t0 */ | 872 | unsigned short cycle; /* t0 */ |
| 870 | unsigned short udma; /* t2CYCTYP/2 */ | 873 | unsigned short udma; /* t2CYCTYP/2 */ |
| 871 | }; | 874 | }; |
| @@ -927,6 +930,8 @@ extern void ata_host_init(struct ata_host *, struct device *, | |||
| 927 | extern int ata_scsi_detect(struct scsi_host_template *sht); | 930 | extern int ata_scsi_detect(struct scsi_host_template *sht); |
| 928 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 931 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
| 929 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); | 932 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); |
| 933 | extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, | ||
| 934 | int cmd, void __user *arg); | ||
| 930 | extern void ata_sas_port_destroy(struct ata_port *); | 935 | extern void ata_sas_port_destroy(struct ata_port *); |
| 931 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, | 936 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, |
| 932 | struct ata_port_info *, struct Scsi_Host *); | 937 | struct ata_port_info *, struct Scsi_Host *); |
diff --git a/include/linux/loop.h b/include/linux/loop.h index 46169a7b559b..6ffd6db5bb0d 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h | |||
| @@ -80,7 +80,7 @@ enum { | |||
| 80 | }; | 80 | }; |
| 81 | 81 | ||
| 82 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ | 82 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ |
| 83 | #include <asm/types.h> /* for __u64 */ | 83 | #include <linux/types.h> /* for __u64 */ |
| 84 | 84 | ||
| 85 | /* Backwards compatibility version */ | 85 | /* Backwards compatibility version */ |
| 86 | struct loop_info { | 86 | struct loop_info { |
diff --git a/include/linux/magic.h b/include/linux/magic.h index 439f6f3cb0c4..0b4df7eba852 100644 --- a/include/linux/magic.h +++ b/include/linux/magic.h | |||
| @@ -10,11 +10,13 @@ | |||
| 10 | #define SYSFS_MAGIC 0x62656572 | 10 | #define SYSFS_MAGIC 0x62656572 |
| 11 | #define SECURITYFS_MAGIC 0x73636673 | 11 | #define SECURITYFS_MAGIC 0x73636673 |
| 12 | #define TMPFS_MAGIC 0x01021994 | 12 | #define TMPFS_MAGIC 0x01021994 |
| 13 | #define SQUASHFS_MAGIC 0x73717368 | ||
| 13 | #define EFS_SUPER_MAGIC 0x414A53 | 14 | #define EFS_SUPER_MAGIC 0x414A53 |
| 14 | #define EXT2_SUPER_MAGIC 0xEF53 | 15 | #define EXT2_SUPER_MAGIC 0xEF53 |
| 15 | #define EXT3_SUPER_MAGIC 0xEF53 | 16 | #define EXT3_SUPER_MAGIC 0xEF53 |
| 16 | #define XENFS_SUPER_MAGIC 0xabba1974 | 17 | #define XENFS_SUPER_MAGIC 0xabba1974 |
| 17 | #define EXT4_SUPER_MAGIC 0xEF53 | 18 | #define EXT4_SUPER_MAGIC 0xEF53 |
| 19 | #define BTRFS_SUPER_MAGIC 0x9123683E | ||
| 18 | #define HPFS_SUPER_MAGIC 0xf995e849 | 20 | #define HPFS_SUPER_MAGIC 0xf995e849 |
| 19 | #define ISOFS_SUPER_MAGIC 0x9660 | 21 | #define ISOFS_SUPER_MAGIC 0x9660 |
| 20 | #define JFFS2_SUPER_MAGIC 0x72b6 | 22 | #define JFFS2_SUPER_MAGIC 0x72b6 |
diff --git a/include/linux/matroxfb.h b/include/linux/matroxfb.h index ae5b09493062..404f678e734b 100644 --- a/include/linux/matroxfb.h +++ b/include/linux/matroxfb.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #define __LINUX_MATROXFB_H__ | 2 | #define __LINUX_MATROXFB_H__ |
| 3 | 3 | ||
| 4 | #include <asm/ioctl.h> | 4 | #include <asm/ioctl.h> |
| 5 | #include <asm/types.h> | 5 | #include <linux/types.h> |
| 6 | #include <linux/videodev2.h> | 6 | #include <linux/videodev2.h> |
| 7 | 7 | ||
| 8 | struct matroxioc_output_mode { | 8 | struct matroxioc_output_mode { |
diff --git a/include/linux/mm.h b/include/linux/mm.h index b91a73fd1bcc..e8ddc98b8405 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -260,7 +260,6 @@ static inline int put_page_testzero(struct page *page) | |||
| 260 | */ | 260 | */ |
| 261 | static inline int get_page_unless_zero(struct page *page) | 261 | static inline int get_page_unless_zero(struct page *page) |
| 262 | { | 262 | { |
| 263 | VM_BUG_ON(PageTail(page)); | ||
| 264 | return atomic_inc_not_zero(&page->_count); | 263 | return atomic_inc_not_zero(&page->_count); |
| 265 | } | 264 | } |
| 266 | 265 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f24556813375..ec54785d34f9 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -467,7 +467,7 @@ struct netdev_queue { | |||
| 467 | * This function is called when network device transistions to the down | 467 | * This function is called when network device transistions to the down |
| 468 | * state. | 468 | * state. |
| 469 | * | 469 | * |
| 470 | * int (*ndo_hard_start_xmit)(struct sk_buff *skb, struct net_device *dev); | 470 | * int (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev); |
| 471 | * Called when a packet needs to be transmitted. | 471 | * Called when a packet needs to be transmitted. |
| 472 | * Must return NETDEV_TX_OK , NETDEV_TX_BUSY, or NETDEV_TX_LOCKED, | 472 | * Must return NETDEV_TX_OK , NETDEV_TX_BUSY, or NETDEV_TX_LOCKED, |
| 473 | * Required can not be NULL. | 473 | * Required can not be NULL. |
| @@ -795,6 +795,7 @@ struct net_device | |||
| 795 | NETREG_UNREGISTERING, /* called unregister_netdevice */ | 795 | NETREG_UNREGISTERING, /* called unregister_netdevice */ |
| 796 | NETREG_UNREGISTERED, /* completed unregister todo */ | 796 | NETREG_UNREGISTERED, /* completed unregister todo */ |
| 797 | NETREG_RELEASED, /* called free_netdev */ | 797 | NETREG_RELEASED, /* called free_netdev */ |
| 798 | NETREG_DUMMY, /* dummy device for NAPI poll */ | ||
| 798 | } reg_state; | 799 | } reg_state; |
| 799 | 800 | ||
| 800 | /* Called from unregister, can be used to call free_netdev */ | 801 | /* Called from unregister, can be used to call free_netdev */ |
| @@ -1077,6 +1078,8 @@ extern void free_netdev(struct net_device *dev); | |||
| 1077 | extern void synchronize_net(void); | 1078 | extern void synchronize_net(void); |
| 1078 | extern int register_netdevice_notifier(struct notifier_block *nb); | 1079 | extern int register_netdevice_notifier(struct notifier_block *nb); |
| 1079 | extern int unregister_netdevice_notifier(struct notifier_block *nb); | 1080 | extern int unregister_netdevice_notifier(struct notifier_block *nb); |
| 1081 | extern int init_dummy_netdev(struct net_device *dev); | ||
| 1082 | |||
| 1080 | extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev); | 1083 | extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev); |
| 1081 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); | 1084 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); |
| 1082 | extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); | 1085 | extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index e52ce475d19f..c7ee8744d26b 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
| @@ -270,6 +270,7 @@ struct xt_match | |||
| 270 | struct list_head list; | 270 | struct list_head list; |
| 271 | 271 | ||
| 272 | const char name[XT_FUNCTION_MAXNAMELEN-1]; | 272 | const char name[XT_FUNCTION_MAXNAMELEN-1]; |
| 273 | u_int8_t revision; | ||
| 273 | 274 | ||
| 274 | /* Return true or false: return FALSE and set *hotdrop = 1 to | 275 | /* Return true or false: return FALSE and set *hotdrop = 1 to |
| 275 | force immediate packet drop. */ | 276 | force immediate packet drop. */ |
| @@ -302,7 +303,6 @@ struct xt_match | |||
| 302 | unsigned short proto; | 303 | unsigned short proto; |
| 303 | 304 | ||
| 304 | unsigned short family; | 305 | unsigned short family; |
| 305 | u_int8_t revision; | ||
| 306 | }; | 306 | }; |
| 307 | 307 | ||
| 308 | /* Registration hooks for targets. */ | 308 | /* Registration hooks for targets. */ |
diff --git a/include/linux/of_i2c.h b/include/linux/of_i2c.h index bd2a870ec296..34974b5a76f7 100644 --- a/include/linux/of_i2c.h +++ b/include/linux/of_i2c.h | |||
| @@ -17,4 +17,7 @@ | |||
| 17 | void of_register_i2c_devices(struct i2c_adapter *adap, | 17 | void of_register_i2c_devices(struct i2c_adapter *adap, |
| 18 | struct device_node *adap_node); | 18 | struct device_node *adap_node); |
| 19 | 19 | ||
| 20 | /* must call put_device() when done with returned i2c_client device */ | ||
| 21 | struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); | ||
| 22 | |||
| 20 | #endif /* __LINUX_OF_I2C_H */ | 23 | #endif /* __LINUX_OF_I2C_H */ |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 80f8b8b65fde..48890cf3f96e 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -117,6 +117,10 @@ typedef int __bitwise pci_power_t; | |||
| 117 | #define PCI_UNKNOWN ((pci_power_t __force) 5) | 117 | #define PCI_UNKNOWN ((pci_power_t __force) 5) |
| 118 | #define PCI_POWER_ERROR ((pci_power_t __force) -1) | 118 | #define PCI_POWER_ERROR ((pci_power_t __force) -1) |
| 119 | 119 | ||
| 120 | #define PCI_PM_D2_DELAY 200 | ||
| 121 | #define PCI_PM_D3_WAIT 10 | ||
| 122 | #define PCI_PM_BUS_WAIT 50 | ||
| 123 | |||
| 120 | /** The pci_channel state describes connectivity between the CPU and | 124 | /** The pci_channel state describes connectivity between the CPU and |
| 121 | * the pci device. If some PCI bus between here and the pci device | 125 | * the pci device. If some PCI bus between here and the pci device |
| 122 | * has crashed or locked up, this info is reflected here. | 126 | * has crashed or locked up, this info is reflected here. |
| @@ -252,6 +256,7 @@ struct pci_dev { | |||
| 252 | unsigned int ari_enabled:1; /* ARI forwarding */ | 256 | unsigned int ari_enabled:1; /* ARI forwarding */ |
| 253 | unsigned int is_managed:1; | 257 | unsigned int is_managed:1; |
| 254 | unsigned int is_pcie:1; | 258 | unsigned int is_pcie:1; |
| 259 | unsigned int state_saved:1; | ||
| 255 | pci_dev_flags_t dev_flags; | 260 | pci_dev_flags_t dev_flags; |
| 256 | atomic_t enable_cnt; /* pci_enable_device has been called */ | 261 | atomic_t enable_cnt; /* pci_enable_device has been called */ |
| 257 | 262 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index d543365518ab..d56ad9c21c09 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -2174,6 +2174,7 @@ | |||
| 2174 | #define PCI_DEVICE_ID_RDC_R6040 0x6040 | 2174 | #define PCI_DEVICE_ID_RDC_R6040 0x6040 |
| 2175 | #define PCI_DEVICE_ID_RDC_R6060 0x6060 | 2175 | #define PCI_DEVICE_ID_RDC_R6060 0x6060 |
| 2176 | #define PCI_DEVICE_ID_RDC_R6061 0x6061 | 2176 | #define PCI_DEVICE_ID_RDC_R6061 0x6061 |
| 2177 | #define PCI_DEVICE_ID_RDC_D1010 0x1010 | ||
| 2177 | 2178 | ||
| 2178 | #define PCI_VENDOR_ID_LENOVO 0x17aa | 2179 | #define PCI_VENDOR_ID_LENOVO 0x17aa |
| 2179 | 2180 | ||
diff --git a/include/linux/phantom.h b/include/linux/phantom.h index 02268c54c250..94dd6645c60a 100644 --- a/include/linux/phantom.h +++ b/include/linux/phantom.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #ifndef __PHANTOM_H | 10 | #ifndef __PHANTOM_H |
| 11 | #define __PHANTOM_H | 11 | #define __PHANTOM_H |
| 12 | 12 | ||
| 13 | #include <asm/types.h> | 13 | #include <linux/types.h> |
| 14 | 14 | ||
| 15 | /* PHN_(G/S)ET_REG param */ | 15 | /* PHN_(G/S)ET_REG param */ |
| 16 | struct phm_reg { | 16 | struct phm_reg { |
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index 21b781a3350f..0b35b3a1be05 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
| @@ -24,10 +24,8 @@ void sync_dquots(struct super_block *sb, int type); | |||
| 24 | 24 | ||
| 25 | int dquot_initialize(struct inode *inode, int type); | 25 | int dquot_initialize(struct inode *inode, int type); |
| 26 | int dquot_drop(struct inode *inode); | 26 | int dquot_drop(struct inode *inode); |
| 27 | int dquot_drop_locked(struct inode *inode); | ||
| 28 | struct dquot *dqget(struct super_block *sb, unsigned int id, int type); | 27 | struct dquot *dqget(struct super_block *sb, unsigned int id, int type); |
| 29 | void dqput(struct dquot *dquot); | 28 | void dqput(struct dquot *dquot); |
| 30 | int dquot_is_cached(struct super_block *sb, unsigned int id, int type); | ||
| 31 | int dquot_scan_active(struct super_block *sb, | 29 | int dquot_scan_active(struct super_block *sb, |
| 32 | int (*fn)(struct dquot *dquot, unsigned long priv), | 30 | int (*fn)(struct dquot *dquot, unsigned long priv), |
| 33 | unsigned long priv); | 31 | unsigned long priv); |
diff --git a/include/linux/radeonfb.h b/include/linux/radeonfb.h index 5bd8975ed78e..8c4bbdecc44f 100644 --- a/include/linux/radeonfb.h +++ b/include/linux/radeonfb.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #define __LINUX_RADEONFB_H__ | 2 | #define __LINUX_RADEONFB_H__ |
| 3 | 3 | ||
| 4 | #include <asm/ioctl.h> | 4 | #include <asm/ioctl.h> |
| 5 | #include <asm/types.h> | 5 | #include <linux/types.h> |
| 6 | 6 | ||
| 7 | #define ATY_RADEON_LCD_ON 0x00000001 | 7 | #define ATY_RADEON_LCD_ON 0x00000001 |
| 8 | #define ATY_RADEON_CRT_ON 0x00000002 | 8 | #define ATY_RADEON_CRT_ON 0x00000002 |
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h index dede0a2cfc45..4c5bcf6ca7e8 100644 --- a/include/linux/res_counter.h +++ b/include/linux/res_counter.h | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | * | 9 | * |
| 10 | * Author: Pavel Emelianov <xemul@openvz.org> | 10 | * Author: Pavel Emelianov <xemul@openvz.org> |
| 11 | * | 11 | * |
| 12 | * See Documentation/controllers/resource_counter.txt for more | 12 | * See Documentation/cgroups/resource_counter.txt for more |
| 13 | * info about what this counter is. | 13 | * info about what this counter is. |
| 14 | */ | 14 | */ |
| 15 | 15 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 4cae9b81a1f8..02e16d207304 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -293,6 +293,9 @@ extern void sched_show_task(struct task_struct *p); | |||
| 293 | extern void softlockup_tick(void); | 293 | extern void softlockup_tick(void); |
| 294 | extern void touch_softlockup_watchdog(void); | 294 | extern void touch_softlockup_watchdog(void); |
| 295 | extern void touch_all_softlockup_watchdogs(void); | 295 | extern void touch_all_softlockup_watchdogs(void); |
| 296 | extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | ||
| 297 | struct file *filp, void __user *buffer, | ||
| 298 | size_t *lenp, loff_t *ppos); | ||
| 296 | extern unsigned int softlockup_panic; | 299 | extern unsigned int softlockup_panic; |
| 297 | extern unsigned long sysctl_hung_task_check_count; | 300 | extern unsigned long sysctl_hung_task_check_count; |
| 298 | extern unsigned long sysctl_hung_task_timeout_secs; | 301 | extern unsigned long sysctl_hung_task_timeout_secs; |
| @@ -450,6 +453,7 @@ struct task_cputime { | |||
| 450 | cputime_t utime; | 453 | cputime_t utime; |
| 451 | cputime_t stime; | 454 | cputime_t stime; |
| 452 | unsigned long long sum_exec_runtime; | 455 | unsigned long long sum_exec_runtime; |
| 456 | spinlock_t lock; | ||
| 453 | }; | 457 | }; |
| 454 | /* Alternate field names when used to cache expirations. */ | 458 | /* Alternate field names when used to cache expirations. */ |
| 455 | #define prof_exp stime | 459 | #define prof_exp stime |
| @@ -465,7 +469,7 @@ struct task_cputime { | |||
| 465 | * used for thread group CPU clock calculations. | 469 | * used for thread group CPU clock calculations. |
| 466 | */ | 470 | */ |
| 467 | struct thread_group_cputime { | 471 | struct thread_group_cputime { |
| 468 | struct task_cputime *totals; | 472 | struct task_cputime totals; |
| 469 | }; | 473 | }; |
| 470 | 474 | ||
| 471 | /* | 475 | /* |
| @@ -2180,24 +2184,30 @@ static inline int spin_needbreak(spinlock_t *lock) | |||
| 2180 | * Thread group CPU time accounting. | 2184 | * Thread group CPU time accounting. |
| 2181 | */ | 2185 | */ |
| 2182 | 2186 | ||
| 2183 | extern int thread_group_cputime_alloc(struct task_struct *); | 2187 | static inline |
| 2184 | extern void thread_group_cputime(struct task_struct *, struct task_cputime *); | 2188 | void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times) |
| 2185 | |||
| 2186 | static inline void thread_group_cputime_init(struct signal_struct *sig) | ||
| 2187 | { | 2189 | { |
| 2188 | sig->cputime.totals = NULL; | 2190 | struct task_cputime *totals = &tsk->signal->cputime.totals; |
| 2191 | unsigned long flags; | ||
| 2192 | |||
| 2193 | spin_lock_irqsave(&totals->lock, flags); | ||
| 2194 | *times = *totals; | ||
| 2195 | spin_unlock_irqrestore(&totals->lock, flags); | ||
| 2189 | } | 2196 | } |
| 2190 | 2197 | ||
| 2191 | static inline int thread_group_cputime_clone_thread(struct task_struct *curr) | 2198 | static inline void thread_group_cputime_init(struct signal_struct *sig) |
| 2192 | { | 2199 | { |
| 2193 | if (curr->signal->cputime.totals) | 2200 | sig->cputime.totals = (struct task_cputime){ |
| 2194 | return 0; | 2201 | .utime = cputime_zero, |
| 2195 | return thread_group_cputime_alloc(curr); | 2202 | .stime = cputime_zero, |
| 2203 | .sum_exec_runtime = 0, | ||
| 2204 | }; | ||
| 2205 | |||
| 2206 | spin_lock_init(&sig->cputime.totals.lock); | ||
| 2196 | } | 2207 | } |
| 2197 | 2208 | ||
| 2198 | static inline void thread_group_cputime_free(struct signal_struct *sig) | 2209 | static inline void thread_group_cputime_free(struct signal_struct *sig) |
| 2199 | { | 2210 | { |
| 2200 | free_percpu(sig->cputime.totals); | ||
| 2201 | } | 2211 | } |
| 2202 | 2212 | ||
| 2203 | /* | 2213 | /* |
diff --git a/include/linux/swab.h b/include/linux/swab.h index be5284d4a053..ea0c02fd5163 100644 --- a/include/linux/swab.h +++ b/include/linux/swab.h | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/compiler.h> | 5 | #include <linux/compiler.h> |
| 6 | #include <asm/byteorder.h> | 6 | #include <asm/swab.h> |
| 7 | 7 | ||
| 8 | /* | 8 | /* |
| 9 | * casts are necessary for constants, because we never know how for sure | 9 | * casts are necessary for constants, because we never know how for sure |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 18d0a243a7b3..16875f89e6a7 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -54,6 +54,7 @@ struct compat_stat; | |||
| 54 | struct compat_timeval; | 54 | struct compat_timeval; |
| 55 | struct robust_list_head; | 55 | struct robust_list_head; |
| 56 | struct getcpu_cache; | 56 | struct getcpu_cache; |
| 57 | struct old_linux_dirent; | ||
| 57 | 58 | ||
| 58 | #include <linux/types.h> | 59 | #include <linux/types.h> |
| 59 | #include <linux/aio_abi.h> | 60 | #include <linux/aio_abi.h> |
| @@ -65,6 +66,74 @@ struct getcpu_cache; | |||
| 65 | #include <linux/quota.h> | 66 | #include <linux/quota.h> |
| 66 | #include <linux/key.h> | 67 | #include <linux/key.h> |
| 67 | 68 | ||
| 69 | #define __SC_DECL1(t1, a1) t1 a1 | ||
| 70 | #define __SC_DECL2(t2, a2, ...) t2 a2, __SC_DECL1(__VA_ARGS__) | ||
| 71 | #define __SC_DECL3(t3, a3, ...) t3 a3, __SC_DECL2(__VA_ARGS__) | ||
| 72 | #define __SC_DECL4(t4, a4, ...) t4 a4, __SC_DECL3(__VA_ARGS__) | ||
| 73 | #define __SC_DECL5(t5, a5, ...) t5 a5, __SC_DECL4(__VA_ARGS__) | ||
| 74 | #define __SC_DECL6(t6, a6, ...) t6 a6, __SC_DECL5(__VA_ARGS__) | ||
| 75 | |||
| 76 | #define __SC_LONG1(t1, a1) long a1 | ||
| 77 | #define __SC_LONG2(t2, a2, ...) long a2, __SC_LONG1(__VA_ARGS__) | ||
| 78 | #define __SC_LONG3(t3, a3, ...) long a3, __SC_LONG2(__VA_ARGS__) | ||
| 79 | #define __SC_LONG4(t4, a4, ...) long a4, __SC_LONG3(__VA_ARGS__) | ||
| 80 | #define __SC_LONG5(t5, a5, ...) long a5, __SC_LONG4(__VA_ARGS__) | ||
| 81 | #define __SC_LONG6(t6, a6, ...) long a6, __SC_LONG5(__VA_ARGS__) | ||
| 82 | |||
| 83 | #define __SC_CAST1(t1, a1) (t1) a1 | ||
| 84 | #define __SC_CAST2(t2, a2, ...) (t2) a2, __SC_CAST1(__VA_ARGS__) | ||
| 85 | #define __SC_CAST3(t3, a3, ...) (t3) a3, __SC_CAST2(__VA_ARGS__) | ||
| 86 | #define __SC_CAST4(t4, a4, ...) (t4) a4, __SC_CAST3(__VA_ARGS__) | ||
| 87 | #define __SC_CAST5(t5, a5, ...) (t5) a5, __SC_CAST4(__VA_ARGS__) | ||
| 88 | #define __SC_CAST6(t6, a6, ...) (t6) a6, __SC_CAST5(__VA_ARGS__) | ||
| 89 | |||
| 90 | #define __SC_TEST(type) BUILD_BUG_ON(sizeof(type) > sizeof(long)) | ||
| 91 | #define __SC_TEST1(t1, a1) __SC_TEST(t1) | ||
| 92 | #define __SC_TEST2(t2, a2, ...) __SC_TEST(t2); __SC_TEST1(__VA_ARGS__) | ||
| 93 | #define __SC_TEST3(t3, a3, ...) __SC_TEST(t3); __SC_TEST2(__VA_ARGS__) | ||
| 94 | #define __SC_TEST4(t4, a4, ...) __SC_TEST(t4); __SC_TEST3(__VA_ARGS__) | ||
| 95 | #define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__) | ||
| 96 | #define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__) | ||
| 97 | |||
| 98 | #define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void) | ||
| 99 | #define SYSCALL_DEFINE1(...) SYSCALL_DEFINEx(1, __VA_ARGS__) | ||
| 100 | #define SYSCALL_DEFINE2(...) SYSCALL_DEFINEx(2, __VA_ARGS__) | ||
| 101 | #define SYSCALL_DEFINE3(...) SYSCALL_DEFINEx(3, __VA_ARGS__) | ||
| 102 | #define SYSCALL_DEFINE4(...) SYSCALL_DEFINEx(4, __VA_ARGS__) | ||
| 103 | #define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__) | ||
| 104 | #define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__) | ||
| 105 | |||
| 106 | #ifdef CONFIG_PPC64 | ||
| 107 | #define SYSCALL_ALIAS(alias, name) \ | ||
| 108 | asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \ | ||
| 109 | "\t.globl ." #alias "\n\t.set ." #alias ", ." #name) | ||
| 110 | #else | ||
| 111 | #define SYSCALL_ALIAS(alias, name) \ | ||
| 112 | asm ("\t.globl " #alias "\n\t.set " #alias ", " #name) | ||
| 113 | #endif | ||
| 114 | |||
| 115 | #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS | ||
| 116 | |||
| 117 | #define SYSCALL_DEFINE(name) static inline long SYSC_##name | ||
| 118 | #define SYSCALL_DEFINEx(x, name, ...) \ | ||
| 119 | asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__)); \ | ||
| 120 | static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__)); \ | ||
| 121 | asmlinkage long SyS_##name(__SC_LONG##x(__VA_ARGS__)) \ | ||
| 122 | { \ | ||
| 123 | __SC_TEST##x(__VA_ARGS__); \ | ||
| 124 | return (long) SYSC_##name(__SC_CAST##x(__VA_ARGS__)); \ | ||
| 125 | } \ | ||
| 126 | SYSCALL_ALIAS(sys_##name, SyS_##name); \ | ||
| 127 | static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__)) | ||
| 128 | |||
| 129 | #else /* CONFIG_HAVE_SYSCALL_WRAPPERS */ | ||
| 130 | |||
| 131 | #define SYSCALL_DEFINE(name) asmlinkage long sys_##name | ||
| 132 | #define SYSCALL_DEFINEx(x, name, ...) \ | ||
| 133 | asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__)) | ||
| 134 | |||
| 135 | #endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */ | ||
| 136 | |||
| 68 | asmlinkage long sys_time(time_t __user *tloc); | 137 | asmlinkage long sys_time(time_t __user *tloc); |
| 69 | asmlinkage long sys_stime(time_t __user *tptr); | 138 | asmlinkage long sys_stime(time_t __user *tptr); |
| 70 | asmlinkage long sys_gettimeofday(struct timeval __user *tv, | 139 | asmlinkage long sys_gettimeofday(struct timeval __user *tv, |
| @@ -77,7 +146,7 @@ asmlinkage long sys_times(struct tms __user *tbuf); | |||
| 77 | 146 | ||
| 78 | asmlinkage long sys_gettid(void); | 147 | asmlinkage long sys_gettid(void); |
| 79 | asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp); | 148 | asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp); |
| 80 | asmlinkage unsigned long sys_alarm(unsigned int seconds); | 149 | asmlinkage long sys_alarm(unsigned int seconds); |
| 81 | asmlinkage long sys_getpid(void); | 150 | asmlinkage long sys_getpid(void); |
| 82 | asmlinkage long sys_getppid(void); | 151 | asmlinkage long sys_getppid(void); |
| 83 | asmlinkage long sys_getuid(void); | 152 | asmlinkage long sys_getuid(void); |
| @@ -166,7 +235,7 @@ asmlinkage long sys_kexec_load(unsigned long entry, unsigned long nr_segments, | |||
| 166 | unsigned long flags); | 235 | unsigned long flags); |
| 167 | 236 | ||
| 168 | asmlinkage long sys_exit(int error_code); | 237 | asmlinkage long sys_exit(int error_code); |
| 169 | asmlinkage void sys_exit_group(int error_code); | 238 | asmlinkage long sys_exit_group(int error_code); |
| 170 | asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr, | 239 | asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr, |
| 171 | int options, struct rusage __user *ru); | 240 | int options, struct rusage __user *ru); |
| 172 | asmlinkage long sys_waitid(int which, pid_t pid, | 241 | asmlinkage long sys_waitid(int which, pid_t pid, |
| @@ -196,7 +265,7 @@ asmlinkage long sys_tkill(int pid, int sig); | |||
| 196 | asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo); | 265 | asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo); |
| 197 | asmlinkage long sys_sgetmask(void); | 266 | asmlinkage long sys_sgetmask(void); |
| 198 | asmlinkage long sys_ssetmask(int newmask); | 267 | asmlinkage long sys_ssetmask(int newmask); |
| 199 | asmlinkage unsigned long sys_signal(int sig, __sighandler_t handler); | 268 | asmlinkage long sys_signal(int sig, __sighandler_t handler); |
| 200 | asmlinkage long sys_pause(void); | 269 | asmlinkage long sys_pause(void); |
| 201 | 270 | ||
| 202 | asmlinkage long sys_sync(void); | 271 | asmlinkage long sys_sync(void); |
| @@ -246,29 +315,29 @@ asmlinkage long sys_lsetxattr(const char __user *path, const char __user *name, | |||
| 246 | const void __user *value, size_t size, int flags); | 315 | const void __user *value, size_t size, int flags); |
| 247 | asmlinkage long sys_fsetxattr(int fd, const char __user *name, | 316 | asmlinkage long sys_fsetxattr(int fd, const char __user *name, |
| 248 | const void __user *value, size_t size, int flags); | 317 | const void __user *value, size_t size, int flags); |
| 249 | asmlinkage ssize_t sys_getxattr(const char __user *path, const char __user *name, | 318 | asmlinkage long sys_getxattr(const char __user *path, const char __user *name, |
| 250 | void __user *value, size_t size); | 319 | void __user *value, size_t size); |
| 251 | asmlinkage ssize_t sys_lgetxattr(const char __user *path, const char __user *name, | 320 | asmlinkage long sys_lgetxattr(const char __user *path, const char __user *name, |
| 252 | void __user *value, size_t size); | 321 | void __user *value, size_t size); |
| 253 | asmlinkage ssize_t sys_fgetxattr(int fd, const char __user *name, | 322 | asmlinkage long sys_fgetxattr(int fd, const char __user *name, |
| 254 | void __user *value, size_t size); | 323 | void __user *value, size_t size); |
| 255 | asmlinkage ssize_t sys_listxattr(const char __user *path, char __user *list, | 324 | asmlinkage long sys_listxattr(const char __user *path, char __user *list, |
| 256 | size_t size); | 325 | size_t size); |
| 257 | asmlinkage ssize_t sys_llistxattr(const char __user *path, char __user *list, | 326 | asmlinkage long sys_llistxattr(const char __user *path, char __user *list, |
| 258 | size_t size); | 327 | size_t size); |
| 259 | asmlinkage ssize_t sys_flistxattr(int fd, char __user *list, size_t size); | 328 | asmlinkage long sys_flistxattr(int fd, char __user *list, size_t size); |
| 260 | asmlinkage long sys_removexattr(const char __user *path, | 329 | asmlinkage long sys_removexattr(const char __user *path, |
| 261 | const char __user *name); | 330 | const char __user *name); |
| 262 | asmlinkage long sys_lremovexattr(const char __user *path, | 331 | asmlinkage long sys_lremovexattr(const char __user *path, |
| 263 | const char __user *name); | 332 | const char __user *name); |
| 264 | asmlinkage long sys_fremovexattr(int fd, const char __user *name); | 333 | asmlinkage long sys_fremovexattr(int fd, const char __user *name); |
| 265 | 334 | ||
| 266 | asmlinkage unsigned long sys_brk(unsigned long brk); | 335 | asmlinkage long sys_brk(unsigned long brk); |
| 267 | asmlinkage long sys_mprotect(unsigned long start, size_t len, | 336 | asmlinkage long sys_mprotect(unsigned long start, size_t len, |
| 268 | unsigned long prot); | 337 | unsigned long prot); |
| 269 | asmlinkage unsigned long sys_mremap(unsigned long addr, | 338 | asmlinkage long sys_mremap(unsigned long addr, |
| 270 | unsigned long old_len, unsigned long new_len, | 339 | unsigned long old_len, unsigned long new_len, |
| 271 | unsigned long flags, unsigned long new_addr); | 340 | unsigned long flags, unsigned long new_addr); |
| 272 | asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size, | 341 | asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size, |
| 273 | unsigned long prot, unsigned long pgoff, | 342 | unsigned long prot, unsigned long pgoff, |
| 274 | unsigned long flags); | 343 | unsigned long flags); |
| @@ -321,10 +390,10 @@ asmlinkage long sys_io_submit(aio_context_t, long, | |||
| 321 | struct iocb __user * __user *); | 390 | struct iocb __user * __user *); |
| 322 | asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb, | 391 | asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb, |
| 323 | struct io_event __user *result); | 392 | struct io_event __user *result); |
| 324 | asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd, | 393 | asmlinkage long sys_sendfile(int out_fd, int in_fd, |
| 325 | off_t __user *offset, size_t count); | 394 | off_t __user *offset, size_t count); |
| 326 | asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd, | 395 | asmlinkage long sys_sendfile64(int out_fd, int in_fd, |
| 327 | loff_t __user *offset, size_t count); | 396 | loff_t __user *offset, size_t count); |
| 328 | asmlinkage long sys_readlink(const char __user *path, | 397 | asmlinkage long sys_readlink(const char __user *path, |
| 329 | char __user *buf, int bufsiz); | 398 | char __user *buf, int bufsiz); |
| 330 | asmlinkage long sys_creat(const char __user *pathname, int mode); | 399 | asmlinkage long sys_creat(const char __user *pathname, int mode); |
| @@ -368,26 +437,25 @@ asmlinkage long sys_utime(char __user *filename, | |||
| 368 | struct utimbuf __user *times); | 437 | struct utimbuf __user *times); |
| 369 | asmlinkage long sys_utimes(char __user *filename, | 438 | asmlinkage long sys_utimes(char __user *filename, |
| 370 | struct timeval __user *utimes); | 439 | struct timeval __user *utimes); |
| 371 | asmlinkage off_t sys_lseek(unsigned int fd, off_t offset, | 440 | asmlinkage long sys_lseek(unsigned int fd, off_t offset, |
| 372 | unsigned int origin); | 441 | unsigned int origin); |
| 373 | asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high, | 442 | asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high, |
| 374 | unsigned long offset_low, loff_t __user *result, | 443 | unsigned long offset_low, loff_t __user *result, |
| 375 | unsigned int origin); | 444 | unsigned int origin); |
| 376 | asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf, | 445 | asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count); |
| 377 | size_t count); | 446 | asmlinkage long sys_readahead(int fd, loff_t offset, size_t count); |
| 378 | asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count); | 447 | asmlinkage long sys_readv(unsigned long fd, |
| 379 | asmlinkage ssize_t sys_readv(unsigned long fd, | 448 | const struct iovec __user *vec, |
| 380 | const struct iovec __user *vec, | 449 | unsigned long vlen); |
| 381 | unsigned long vlen); | 450 | asmlinkage long sys_write(unsigned int fd, const char __user *buf, |
| 382 | asmlinkage ssize_t sys_write(unsigned int fd, const char __user *buf, | 451 | size_t count); |
| 383 | size_t count); | 452 | asmlinkage long sys_writev(unsigned long fd, |
| 384 | asmlinkage ssize_t sys_writev(unsigned long fd, | 453 | const struct iovec __user *vec, |
| 385 | const struct iovec __user *vec, | 454 | unsigned long vlen); |
| 386 | unsigned long vlen); | 455 | asmlinkage long sys_pread64(unsigned int fd, char __user *buf, |
| 387 | asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf, | 456 | size_t count, loff_t pos); |
| 388 | size_t count, loff_t pos); | 457 | asmlinkage long sys_pwrite64(unsigned int fd, const char __user *buf, |
| 389 | asmlinkage ssize_t sys_pwrite64(unsigned int fd, const char __user *buf, | 458 | size_t count, loff_t pos); |
| 390 | size_t count, loff_t pos); | ||
| 391 | asmlinkage long sys_getcwd(char __user *buf, unsigned long size); | 459 | asmlinkage long sys_getcwd(char __user *buf, unsigned long size); |
| 392 | asmlinkage long sys_mkdir(const char __user *pathname, int mode); | 460 | asmlinkage long sys_mkdir(const char __user *pathname, int mode); |
| 393 | asmlinkage long sys_chdir(const char __user *filename); | 461 | asmlinkage long sys_chdir(const char __user *filename); |
| @@ -476,7 +544,7 @@ asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf); | |||
| 476 | asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr); | 544 | asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr); |
| 477 | asmlinkage long sys_mq_unlink(const char __user *name); | 545 | asmlinkage long sys_mq_unlink(const char __user *name); |
| 478 | asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout); | 546 | asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout); |
| 479 | asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout); | 547 | asmlinkage long sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout); |
| 480 | asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification); | 548 | asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification); |
| 481 | asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat); | 549 | asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat); |
| 482 | 550 | ||
| @@ -530,11 +598,6 @@ asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages, | |||
| 530 | const int __user *nodes, | 598 | const int __user *nodes, |
| 531 | int __user *status, | 599 | int __user *status, |
| 532 | int flags); | 600 | int flags); |
| 533 | asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page, | ||
| 534 | __u32 __user *pages, | ||
| 535 | const int __user *nodes, | ||
| 536 | int __user *status, | ||
| 537 | int flags); | ||
| 538 | asmlinkage long sys_mbind(unsigned long start, unsigned long len, | 601 | asmlinkage long sys_mbind(unsigned long start, unsigned long len, |
| 539 | unsigned long mode, | 602 | unsigned long mode, |
| 540 | unsigned long __user *nmask, | 603 | unsigned long __user *nmask, |
| @@ -583,13 +646,6 @@ asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *bu | |||
| 583 | int bufsiz); | 646 | int bufsiz); |
| 584 | asmlinkage long sys_utimensat(int dfd, char __user *filename, | 647 | asmlinkage long sys_utimensat(int dfd, char __user *filename, |
| 585 | struct timespec __user *utimes, int flags); | 648 | struct timespec __user *utimes, int flags); |
| 586 | asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, | ||
| 587 | struct compat_timeval __user *t); | ||
| 588 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename, | ||
| 589 | struct compat_stat __user *statbuf, | ||
| 590 | int flag); | ||
| 591 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, | ||
| 592 | int flags, int mode); | ||
| 593 | asmlinkage long sys_unshare(unsigned long unshare_flags); | 649 | asmlinkage long sys_unshare(unsigned long unshare_flags); |
| 594 | 650 | ||
| 595 | asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, | 651 | asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, |
| @@ -621,6 +677,15 @@ asmlinkage long sys_timerfd_gettime(int ufd, struct itimerspec __user *otmr); | |||
| 621 | asmlinkage long sys_eventfd(unsigned int count); | 677 | asmlinkage long sys_eventfd(unsigned int count); |
| 622 | asmlinkage long sys_eventfd2(unsigned int count, int flags); | 678 | asmlinkage long sys_eventfd2(unsigned int count, int flags); |
| 623 | asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len); | 679 | asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len); |
| 680 | asmlinkage long sys_old_readdir(unsigned int, struct old_linux_dirent __user *, unsigned int); | ||
| 681 | asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *, | ||
| 682 | fd_set __user *, struct timespec __user *, | ||
| 683 | void __user *); | ||
| 684 | asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int, | ||
| 685 | struct timespec __user *, const sigset_t __user *, | ||
| 686 | size_t); | ||
| 687 | asmlinkage long sys_pipe2(int __user *, int); | ||
| 688 | asmlinkage long sys_pipe(int __user *); | ||
| 624 | 689 | ||
| 625 | int kernel_execve(const char *filename, char *const argv[], char *const envp[]); | 690 | int kernel_execve(const char *filename, char *const argv[], char *const envp[]); |
| 626 | 691 | ||
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h index ba09fe88adda..7d3822243074 100644 --- a/include/linux/usb/usbnet.h +++ b/include/linux/usb/usbnet.h | |||
| @@ -197,7 +197,9 @@ extern int usbnet_nway_reset(struct net_device *net); | |||
| 197 | #define devdbg(usbnet, fmt, arg...) \ | 197 | #define devdbg(usbnet, fmt, arg...) \ |
| 198 | printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg) | 198 | printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg) |
| 199 | #else | 199 | #else |
| 200 | #define devdbg(usbnet, fmt, arg...) do {} while(0) | 200 | #define devdbg(usbnet, fmt, arg...) \ |
| 201 | ({ if (0) printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , \ | ||
| 202 | ## arg); 0; }) | ||
| 201 | #endif | 203 | #endif |
| 202 | 204 | ||
| 203 | #define deverr(usbnet, fmt, arg...) \ | 205 | #define deverr(usbnet, fmt, arg...) \ |
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index b36291130f22..3cd51e579ab1 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
| @@ -118,12 +118,24 @@ struct execute_work { | |||
| 118 | init_timer(&(_work)->timer); \ | 118 | init_timer(&(_work)->timer); \ |
| 119 | } while (0) | 119 | } while (0) |
| 120 | 120 | ||
| 121 | #define INIT_DELAYED_WORK_ON_STACK(_work, _func) \ | ||
| 122 | do { \ | ||
| 123 | INIT_WORK(&(_work)->work, (_func)); \ | ||
| 124 | init_timer_on_stack(&(_work)->timer); \ | ||
| 125 | } while (0) | ||
| 126 | |||
| 121 | #define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \ | 127 | #define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \ |
| 122 | do { \ | 128 | do { \ |
| 123 | INIT_WORK(&(_work)->work, (_func)); \ | 129 | INIT_WORK(&(_work)->work, (_func)); \ |
| 124 | init_timer_deferrable(&(_work)->timer); \ | 130 | init_timer_deferrable(&(_work)->timer); \ |
| 125 | } while (0) | 131 | } while (0) |
| 126 | 132 | ||
| 133 | #define INIT_DELAYED_WORK_ON_STACK(_work, _func) \ | ||
| 134 | do { \ | ||
| 135 | INIT_WORK(&(_work)->work, (_func)); \ | ||
| 136 | init_timer_on_stack(&(_work)->timer); \ | ||
| 137 | } while (0) | ||
| 138 | |||
| 127 | /** | 139 | /** |
| 128 | * work_pending - Find out whether a work item is currently pending | 140 | * work_pending - Find out whether a work item is currently pending |
| 129 | * @work: The work item in question | 141 | * @work: The work item in question |
