diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/debugfs.h | 7 | ||||
-rw-r--r-- | include/linux/dmaengine.h | 11 | ||||
-rw-r--r-- | include/linux/if_frad.h | 10 | ||||
-rw-r--r-- | include/linux/init_task.h | 6 | ||||
-rw-r--r-- | include/linux/klist.h | 2 | ||||
-rw-r--r-- | include/linux/pci.h | 5 | ||||
-rw-r--r-- | include/linux/quotaops.h | 2 | ||||
-rw-r--r-- | include/linux/sched.h | 32 | ||||
-rw-r--r-- | include/linux/usb/usbnet.h | 4 | ||||
-rw-r--r-- | include/linux/workqueue.h | 12 |
10 files changed, 69 insertions, 22 deletions
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/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/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/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/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/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/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/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 |