diff options
author | David S. Miller <davem@davemloft.net> | 2009-01-26 20:43:16 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-26 20:43:16 -0500 |
commit | 3eacdf58c2c0b9507afedfc19108e98b992c31e4 (patch) | |
tree | d95e7e022ff6e6181edce43fe97cf2883b5a91ed /include/linux | |
parent | dd0a251c8e087bca05e8f9a3657078591ae6e12b (diff) | |
parent | 5376071069ec8a7e6a8112beab16fc24f5139475 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
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/i2c-id.h | 61 | ||||
-rw-r--r-- | include/linux/i2c.h | 8 | ||||
-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/workqueue.h | 12 |
11 files changed, 71 insertions, 85 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/i2c-id.h b/include/linux/i2c-id.h index 01d67ba9e985..1ffc23bc5d1e 100644 --- a/include/linux/i2c-id.h +++ b/include/linux/i2c-id.h | |||
@@ -40,9 +40,7 @@ | |||
40 | #define I2C_DRIVERID_SAA7185B 13 /* video encoder */ | 40 | #define I2C_DRIVERID_SAA7185B 13 /* video encoder */ |
41 | #define I2C_DRIVERID_SAA7110 22 /* video decoder */ | 41 | #define I2C_DRIVERID_SAA7110 22 /* video decoder */ |
42 | #define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */ | 42 | #define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */ |
43 | #define I2C_DRIVERID_PCF8583 25 /* real time clock */ | ||
44 | #define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */ | 43 | #define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */ |
45 | #define I2C_DRIVERID_TVMIXER 28 /* Mixer driver for tv cards */ | ||
46 | #define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */ | 44 | #define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */ |
47 | #define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */ | 45 | #define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */ |
48 | #define I2C_DRIVERID_BT819 40 /* video decoder */ | 46 | #define I2C_DRIVERID_BT819 40 /* video decoder */ |
@@ -54,7 +52,6 @@ | |||
54 | #define I2C_DRIVERID_SAA7191 57 /* video decoder */ | 52 | #define I2C_DRIVERID_SAA7191 57 /* video decoder */ |
55 | #define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */ | 53 | #define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */ |
56 | #define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ | 54 | #define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ |
57 | #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */ | ||
58 | #define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */ | 55 | #define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */ |
59 | #define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */ | 56 | #define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */ |
60 | #define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */ | 57 | #define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */ |
@@ -62,23 +59,16 @@ | |||
62 | #define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ | 59 | #define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ |
63 | #define I2C_DRIVERID_SAA7127 72 /* saa7127 video encoder */ | 60 | #define I2C_DRIVERID_SAA7127 72 /* saa7127 video encoder */ |
64 | #define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ | 61 | #define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ |
65 | #define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */ | ||
66 | #define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */ | 62 | #define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */ |
67 | #define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */ | 63 | #define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */ |
68 | #define I2C_DRIVERID_WM8739 77 /* wm8739 audio processor */ | 64 | #define I2C_DRIVERID_WM8739 77 /* wm8739 audio processor */ |
69 | #define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */ | 65 | #define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */ |
70 | #define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */ | 66 | #define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */ |
71 | #define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */ | 67 | #define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */ |
72 | #define I2C_DRIVERID_DS1672 81 /* Dallas/Maxim DS1672 RTC */ | ||
73 | #define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */ | 68 | #define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */ |
74 | #define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */ | 69 | #define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */ |
75 | #define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */ | 70 | #define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */ |
76 | #define I2C_DRIVERID_WM8731 89 /* Wolfson WM8731 audio codec */ | ||
77 | #define I2C_DRIVERID_WM8750 90 /* Wolfson WM8750 audio codec */ | ||
78 | #define I2C_DRIVERID_WM8753 91 /* Wolfson WM8753 audio codec */ | ||
79 | #define I2C_DRIVERID_LM4857 92 /* LM4857 Audio Amplifier */ | ||
80 | #define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */ | 71 | #define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */ |
81 | #define I2C_DRIVERID_CS4270 94 /* Cirrus Logic 4270 audio codec */ | ||
82 | #define I2C_DRIVERID_M52790 95 /* Mitsubishi M52790SP/FP AV switch */ | 72 | #define I2C_DRIVERID_M52790 95 /* Mitsubishi M52790SP/FP AV switch */ |
83 | #define I2C_DRIVERID_CS5345 96 /* cs5345 audio processor */ | 73 | #define I2C_DRIVERID_CS5345 96 /* cs5345 audio processor */ |
84 | 74 | ||
@@ -89,74 +79,23 @@ | |||
89 | */ | 79 | */ |
90 | 80 | ||
91 | /* --- Bit algorithm adapters */ | 81 | /* --- Bit algorithm adapters */ |
92 | #define I2C_HW_B_LP 0x010000 /* Parallel port Philips style */ | ||
93 | #define I2C_HW_B_BT848 0x010005 /* BT848 video boards */ | 82 | #define I2C_HW_B_BT848 0x010005 /* BT848 video boards */ |
94 | #define I2C_HW_B_VIA 0x010007 /* Via vt82c586b */ | ||
95 | #define I2C_HW_B_HYDRA 0x010008 /* Apple Hydra Mac I/O */ | ||
96 | #define I2C_HW_B_I810 0x01000a /* Intel I810 */ | ||
97 | #define I2C_HW_B_VOO 0x01000b /* 3dfx Voodoo 3 / Banshee */ | ||
98 | #define I2C_HW_B_SCX200 0x01000e /* Nat'l Semi SCx200 I2C */ | ||
99 | #define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */ | 83 | #define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */ |
100 | #define I2C_HW_B_IOC 0x010011 /* IOC bit-wiggling */ | ||
101 | #define I2C_HW_B_IXP2000 0x010016 /* GPIO on IXP2000 systems */ | ||
102 | #define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */ | 84 | #define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */ |
103 | #define I2C_HW_B_PCILYNX 0x01001a /* TI PCILynx I2C adapter */ | ||
104 | #define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */ | 85 | #define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */ |
105 | #define I2C_HW_B_NVIDIA 0x01001c /* nvidia framebuffer driver */ | ||
106 | #define I2C_HW_B_SAVAGE 0x01001d /* savage framebuffer driver */ | ||
107 | #define I2C_HW_B_RADEON 0x01001e /* radeon framebuffer driver */ | ||
108 | #define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */ | 86 | #define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */ |
109 | #define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */ | 87 | #define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */ |
110 | #define I2C_HW_B_INTELFB 0x010021 /* intel framebuffer driver */ | ||
111 | #define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */ | 88 | #define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */ |
112 | #define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */ | 89 | #define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */ |
113 | 90 | ||
114 | /* --- PCF 8584 based algorithms */ | ||
115 | #define I2C_HW_P_ELEK 0x020002 /* Elektor ISA Bus inteface card */ | ||
116 | |||
117 | /* --- PCA 9564 based algorithms */ | ||
118 | #define I2C_HW_A_ISA 0x1a0000 /* generic ISA Bus interface card */ | ||
119 | |||
120 | /* --- PowerPC on-chip adapters */ | ||
121 | #define I2C_HW_OCP 0x120000 /* IBM on-chip I2C adapter */ | ||
122 | |||
123 | /* --- Broadcom SiByte adapters */ | ||
124 | #define I2C_HW_SIBYTE 0x150000 | ||
125 | |||
126 | /* --- SGI adapters */ | 91 | /* --- SGI adapters */ |
127 | #define I2C_HW_SGI_VINO 0x160000 | 92 | #define I2C_HW_SGI_VINO 0x160000 |
128 | 93 | ||
129 | /* --- XSCALE on-chip adapters */ | ||
130 | #define I2C_HW_IOP3XX 0x140000 | ||
131 | |||
132 | /* --- Au1550 PSC adapters adapters */ | ||
133 | #define I2C_HW_AU1550_PSC 0x1b0000 | ||
134 | |||
135 | /* --- SMBus only adapters */ | 94 | /* --- SMBus only adapters */ |
136 | #define I2C_HW_SMBUS_PIIX4 0x040000 | ||
137 | #define I2C_HW_SMBUS_ALI15X3 0x040001 | ||
138 | #define I2C_HW_SMBUS_VIA2 0x040002 | ||
139 | #define I2C_HW_SMBUS_I801 0x040004 | ||
140 | #define I2C_HW_SMBUS_AMD756 0x040005 | ||
141 | #define I2C_HW_SMBUS_SIS5595 0x040006 | ||
142 | #define I2C_HW_SMBUS_ALI1535 0x040007 | ||
143 | #define I2C_HW_SMBUS_SIS630 0x040008 | ||
144 | #define I2C_HW_SMBUS_SIS96X 0x040009 | ||
145 | #define I2C_HW_SMBUS_AMD8111 0x04000a | ||
146 | #define I2C_HW_SMBUS_SCX200 0x04000b | ||
147 | #define I2C_HW_SMBUS_NFORCE2 0x04000c | ||
148 | #define I2C_HW_SMBUS_W9968CF 0x04000d | 95 | #define I2C_HW_SMBUS_W9968CF 0x04000d |
149 | #define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */ | 96 | #define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */ |
150 | #define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */ | 97 | #define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */ |
151 | #define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */ | 98 | #define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */ |
152 | #define I2C_HW_SMBUS_ALI1563 0x040013 | ||
153 | |||
154 | /* --- MCP107 adapter */ | ||
155 | #define I2C_HW_MPC107 0x0d0000 | ||
156 | |||
157 | /* --- Embedded adapters */ | ||
158 | #define I2C_HW_MV64XXX 0x190000 | ||
159 | #define I2C_HW_BLACKFIN 0x190001 /* ADI Blackfin I2C TWI driver */ | ||
160 | 99 | ||
161 | /* --- Miscellaneous adapters */ | 100 | /* --- Miscellaneous adapters */ |
162 | #define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */ | 101 | #define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */ |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 20873d402467..fcfbfea3af72 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -151,7 +151,7 @@ struct i2c_driver { | |||
151 | * has been dynamically allocated by the driver in the function above, | 151 | * has been dynamically allocated by the driver in the function above, |
152 | * it must be freed here. (LEGACY I2C DRIVERS ONLY) | 152 | * it must be freed here. (LEGACY I2C DRIVERS ONLY) |
153 | */ | 153 | */ |
154 | int (*detach_client)(struct i2c_client *); | 154 | int (*detach_client)(struct i2c_client *) __deprecated; |
155 | 155 | ||
156 | /* Standard driver model interfaces, for "new style" i2c drivers. | 156 | /* Standard driver model interfaces, for "new style" i2c drivers. |
157 | * With the driver model, device enumeration is NEVER done by drivers; | 157 | * With the driver model, device enumeration is NEVER done by drivers; |
@@ -429,8 +429,10 @@ static inline int i2c_add_driver(struct i2c_driver *driver) | |||
429 | return i2c_register_driver(THIS_MODULE, driver); | 429 | return i2c_register_driver(THIS_MODULE, driver); |
430 | } | 430 | } |
431 | 431 | ||
432 | extern int i2c_attach_client(struct i2c_client *); | 432 | /* These are deprecated, your driver should use the standard .probe() |
433 | extern int i2c_detach_client(struct i2c_client *); | 433 | * and .remove() methods instead. */ |
434 | extern int __deprecated i2c_attach_client(struct i2c_client *); | ||
435 | extern int __deprecated i2c_detach_client(struct i2c_client *); | ||
434 | 436 | ||
435 | extern struct i2c_client *i2c_use_client(struct i2c_client *client); | 437 | extern struct i2c_client *i2c_use_client(struct i2c_client *client); |
436 | extern void i2c_release_client(struct i2c_client *client); | 438 | extern void i2c_release_client(struct i2c_client *client); |
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/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 |