Annotation of /trunk/kernel-lts/patches-3.4/0173-3.4.74-all-fixes.patch
Parent Directory | Revision Log
Revision 2338 -
(hide annotations)
(download)
Thu Dec 12 08:43:49 2013 UTC (10 years, 9 months ago) by niro
File size: 20423 byte(s)
Thu Dec 12 08:43:49 2013 UTC (10 years, 9 months ago) by niro
File size: 20423 byte(s)
-linux-3.4.74
1 | niro | 2338 | diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 |
2 | index 99d4e442b77d..8bb57d7c12ea 100644 | ||
3 | --- a/Documentation/i2c/busses/i2c-i801 | ||
4 | +++ b/Documentation/i2c/busses/i2c-i801 | ||
5 | @@ -22,6 +22,7 @@ Supported adapters: | ||
6 | * Intel Panther Point (PCH) | ||
7 | * Intel Lynx Point (PCH) | ||
8 | * Intel Lynx Point-LP (PCH) | ||
9 | + * Intel Avoton (SOC) | ||
10 | Datasheets: Publicly available at the Intel website | ||
11 | |||
12 | On Intel Patsburg and later chipsets, both the normal host SMBus controller | ||
13 | diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c | ||
14 | index 425162e22af5..2f53b892fd80 100644 | ||
15 | --- a/arch/um/os-Linux/start_up.c | ||
16 | +++ b/arch/um/os-Linux/start_up.c | ||
17 | @@ -15,6 +15,8 @@ | ||
18 | #include <sys/mman.h> | ||
19 | #include <sys/stat.h> | ||
20 | #include <sys/wait.h> | ||
21 | +#include <sys/time.h> | ||
22 | +#include <sys/resource.h> | ||
23 | #include <asm/unistd.h> | ||
24 | #include "init.h" | ||
25 | #include "os.h" | ||
26 | diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c | ||
27 | index 850246206b12..585c3b279feb 100644 | ||
28 | --- a/crypto/algif_hash.c | ||
29 | +++ b/crypto/algif_hash.c | ||
30 | @@ -117,6 +117,9 @@ static ssize_t hash_sendpage(struct socket *sock, struct page *page, | ||
31 | if (flags & MSG_SENDPAGE_NOTLAST) | ||
32 | flags |= MSG_MORE; | ||
33 | |||
34 | + if (flags & MSG_SENDPAGE_NOTLAST) | ||
35 | + flags |= MSG_MORE; | ||
36 | + | ||
37 | lock_sock(sk); | ||
38 | sg_init_table(ctx->sgl.sg, 1); | ||
39 | sg_set_page(ctx->sgl.sg, page, size, offset); | ||
40 | diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c | ||
41 | index a19c027b29bd..918a3b4148b8 100644 | ||
42 | --- a/crypto/algif_skcipher.c | ||
43 | +++ b/crypto/algif_skcipher.c | ||
44 | @@ -381,6 +381,9 @@ static ssize_t skcipher_sendpage(struct socket *sock, struct page *page, | ||
45 | if (flags & MSG_SENDPAGE_NOTLAST) | ||
46 | flags |= MSG_MORE; | ||
47 | |||
48 | + if (flags & MSG_SENDPAGE_NOTLAST) | ||
49 | + flags |= MSG_MORE; | ||
50 | + | ||
51 | lock_sock(sk); | ||
52 | if (!ctx->more && ctx->used) | ||
53 | goto unlock; | ||
54 | diff --git a/crypto/authenc.c b/crypto/authenc.c | ||
55 | index 5ef7ba6b6a76..d21da2f0f508 100644 | ||
56 | --- a/crypto/authenc.c | ||
57 | +++ b/crypto/authenc.c | ||
58 | @@ -368,9 +368,10 @@ static void crypto_authenc_encrypt_done(struct crypto_async_request *req, | ||
59 | if (!err) { | ||
60 | struct crypto_aead *authenc = crypto_aead_reqtfm(areq); | ||
61 | struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc); | ||
62 | - struct ablkcipher_request *abreq = aead_request_ctx(areq); | ||
63 | - u8 *iv = (u8 *)(abreq + 1) + | ||
64 | - crypto_ablkcipher_reqsize(ctx->enc); | ||
65 | + struct authenc_request_ctx *areq_ctx = aead_request_ctx(areq); | ||
66 | + struct ablkcipher_request *abreq = (void *)(areq_ctx->tail | ||
67 | + + ctx->reqoff); | ||
68 | + u8 *iv = (u8 *)abreq - crypto_ablkcipher_ivsize(ctx->enc); | ||
69 | |||
70 | err = crypto_authenc_genicv(areq, iv, 0); | ||
71 | } | ||
72 | diff --git a/crypto/ccm.c b/crypto/ccm.c | ||
73 | index 32fe1bb5decb..18d64ad0433c 100644 | ||
74 | --- a/crypto/ccm.c | ||
75 | +++ b/crypto/ccm.c | ||
76 | @@ -271,7 +271,8 @@ static int crypto_ccm_auth(struct aead_request *req, struct scatterlist *plain, | ||
77 | } | ||
78 | |||
79 | /* compute plaintext into mac */ | ||
80 | - get_data_to_compute(cipher, pctx, plain, cryptlen); | ||
81 | + if (cryptlen) | ||
82 | + get_data_to_compute(cipher, pctx, plain, cryptlen); | ||
83 | |||
84 | out: | ||
85 | return err; | ||
86 | diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c | ||
87 | index 60662545cd14..c20f1578d393 100644 | ||
88 | --- a/drivers/ata/ahci.c | ||
89 | +++ b/drivers/ata/ahci.c | ||
90 | @@ -268,6 +268,30 @@ static const struct pci_device_id ahci_pci_tbl[] = { | ||
91 | { PCI_VDEVICE(INTEL, 0x8c07), board_ahci }, /* Lynx Point RAID */ | ||
92 | { PCI_VDEVICE(INTEL, 0x8c0e), board_ahci }, /* Lynx Point RAID */ | ||
93 | { PCI_VDEVICE(INTEL, 0x8c0f), board_ahci }, /* Lynx Point RAID */ | ||
94 | + { PCI_VDEVICE(INTEL, 0x9c02), board_ahci }, /* Lynx Point-LP AHCI */ | ||
95 | + { PCI_VDEVICE(INTEL, 0x9c03), board_ahci }, /* Lynx Point-LP AHCI */ | ||
96 | + { PCI_VDEVICE(INTEL, 0x9c04), board_ahci }, /* Lynx Point-LP RAID */ | ||
97 | + { PCI_VDEVICE(INTEL, 0x9c05), board_ahci }, /* Lynx Point-LP RAID */ | ||
98 | + { PCI_VDEVICE(INTEL, 0x9c06), board_ahci }, /* Lynx Point-LP RAID */ | ||
99 | + { PCI_VDEVICE(INTEL, 0x9c07), board_ahci }, /* Lynx Point-LP RAID */ | ||
100 | + { PCI_VDEVICE(INTEL, 0x9c0e), board_ahci }, /* Lynx Point-LP RAID */ | ||
101 | + { PCI_VDEVICE(INTEL, 0x9c0f), board_ahci }, /* Lynx Point-LP RAID */ | ||
102 | + { PCI_VDEVICE(INTEL, 0x1f22), board_ahci }, /* Avoton AHCI */ | ||
103 | + { PCI_VDEVICE(INTEL, 0x1f23), board_ahci }, /* Avoton AHCI */ | ||
104 | + { PCI_VDEVICE(INTEL, 0x1f24), board_ahci }, /* Avoton RAID */ | ||
105 | + { PCI_VDEVICE(INTEL, 0x1f25), board_ahci }, /* Avoton RAID */ | ||
106 | + { PCI_VDEVICE(INTEL, 0x1f26), board_ahci }, /* Avoton RAID */ | ||
107 | + { PCI_VDEVICE(INTEL, 0x1f27), board_ahci }, /* Avoton RAID */ | ||
108 | + { PCI_VDEVICE(INTEL, 0x1f2e), board_ahci }, /* Avoton RAID */ | ||
109 | + { PCI_VDEVICE(INTEL, 0x1f2f), board_ahci }, /* Avoton RAID */ | ||
110 | + { PCI_VDEVICE(INTEL, 0x1f32), board_ahci }, /* Avoton AHCI */ | ||
111 | + { PCI_VDEVICE(INTEL, 0x1f33), board_ahci }, /* Avoton AHCI */ | ||
112 | + { PCI_VDEVICE(INTEL, 0x1f34), board_ahci }, /* Avoton RAID */ | ||
113 | + { PCI_VDEVICE(INTEL, 0x1f35), board_ahci }, /* Avoton RAID */ | ||
114 | + { PCI_VDEVICE(INTEL, 0x1f36), board_ahci }, /* Avoton RAID */ | ||
115 | + { PCI_VDEVICE(INTEL, 0x1f37), board_ahci }, /* Avoton RAID */ | ||
116 | + { PCI_VDEVICE(INTEL, 0x1f3e), board_ahci }, /* Avoton RAID */ | ||
117 | + { PCI_VDEVICE(INTEL, 0x1f3f), board_ahci }, /* Avoton RAID */ | ||
118 | |||
119 | /* JMicron 360/1/3/5/6, match class to avoid IDE function */ | ||
120 | { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, | ||
121 | diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c | ||
122 | index 40cc0cf2ded6..e6939e13e338 100644 | ||
123 | --- a/drivers/char/i8k.c | ||
124 | +++ b/drivers/char/i8k.c | ||
125 | @@ -664,6 +664,13 @@ static struct dmi_system_id __initdata i8k_dmi_table[] = { | ||
126 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro"), | ||
127 | }, | ||
128 | }, | ||
129 | + { | ||
130 | + .ident = "Dell XPS421", | ||
131 | + .matches = { | ||
132 | + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
133 | + DMI_MATCH(DMI_PRODUCT_NAME, "XPS L421X"), | ||
134 | + }, | ||
135 | + }, | ||
136 | { } | ||
137 | }; | ||
138 | |||
139 | diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c | ||
140 | index 5a1817eedd1b..c81b8da669ea 100644 | ||
141 | --- a/drivers/gpio/gpio-mpc8xxx.c | ||
142 | +++ b/drivers/gpio/gpio-mpc8xxx.c | ||
143 | @@ -69,10 +69,14 @@ static int mpc8572_gpio_get(struct gpio_chip *gc, unsigned int gpio) | ||
144 | u32 val; | ||
145 | struct of_mm_gpio_chip *mm = to_of_mm_gpio_chip(gc); | ||
146 | struct mpc8xxx_gpio_chip *mpc8xxx_gc = to_mpc8xxx_gpio_chip(mm); | ||
147 | + u32 out_mask, out_shadow; | ||
148 | |||
149 | - val = in_be32(mm->regs + GPIO_DAT) & ~in_be32(mm->regs + GPIO_DIR); | ||
150 | + out_mask = in_be32(mm->regs + GPIO_DIR); | ||
151 | |||
152 | - return (val | mpc8xxx_gc->data) & mpc8xxx_gpio2mask(gpio); | ||
153 | + val = in_be32(mm->regs + GPIO_DAT) & ~out_mask; | ||
154 | + out_shadow = mpc8xxx_gc->data & out_mask; | ||
155 | + | ||
156 | + return (val | out_shadow) & mpc8xxx_gpio2mask(gpio); | ||
157 | } | ||
158 | |||
159 | static int mpc8xxx_gpio_get(struct gpio_chip *gc, unsigned int gpio) | ||
160 | diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig | ||
161 | index ea8736bc257d..bc625f6c5b4c 100644 | ||
162 | --- a/drivers/i2c/busses/Kconfig | ||
163 | +++ b/drivers/i2c/busses/Kconfig | ||
164 | @@ -105,6 +105,7 @@ config I2C_I801 | ||
165 | Panther Point (PCH) | ||
166 | Lynx Point (PCH) | ||
167 | Lynx Point-LP (PCH) | ||
168 | + Avoton (SOC) | ||
169 | |||
170 | This driver can also be built as a module. If so, the module | ||
171 | will be called i2c-i801. | ||
172 | diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c | ||
173 | index d88ec812160e..d63e130690e9 100644 | ||
174 | --- a/drivers/i2c/busses/i2c-i801.c | ||
175 | +++ b/drivers/i2c/busses/i2c-i801.c | ||
176 | @@ -53,6 +53,7 @@ | ||
177 | Panther Point (PCH) 0x1e22 32 hard yes yes yes | ||
178 | Lynx Point (PCH) 0x8c22 32 hard yes yes yes | ||
179 | Lynx Point-LP (PCH) 0x9c22 32 hard yes yes yes | ||
180 | + Avoton (SOC) 0x1f3c 32 hard yes yes yes | ||
181 | |||
182 | Features supported by this driver: | ||
183 | Software PEC no | ||
184 | @@ -145,6 +146,7 @@ | ||
185 | #define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1 0x1d71 | ||
186 | #define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2 0x1d72 | ||
187 | #define PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS 0x1e22 | ||
188 | +#define PCI_DEVICE_ID_INTEL_AVOTON_SMBUS 0x1f3c | ||
189 | #define PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS 0x2330 | ||
190 | #define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 | ||
191 | #define PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS 0x8c22 | ||
192 | @@ -639,6 +641,7 @@ static DEFINE_PCI_DEVICE_TABLE(i801_ids) = { | ||
193 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS) }, | ||
194 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS) }, | ||
195 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_SMBUS) }, | ||
196 | + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_AVOTON_SMBUS) }, | ||
197 | { 0, } | ||
198 | }; | ||
199 | |||
200 | diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig | ||
201 | index 332597980817..20026e3a234a 100644 | ||
202 | --- a/drivers/input/Kconfig | ||
203 | +++ b/drivers/input/Kconfig | ||
204 | @@ -71,7 +71,7 @@ config INPUT_SPARSEKMAP | ||
205 | comment "Userland interfaces" | ||
206 | |||
207 | config INPUT_MOUSEDEV | ||
208 | - tristate "Mouse interface" if EXPERT | ||
209 | + tristate "Mouse interface" | ||
210 | default y | ||
211 | help | ||
212 | Say Y here if you want your mouse to be accessible as char devices | ||
213 | diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig | ||
214 | index f354813a13e8..69a45701d94a 100644 | ||
215 | --- a/drivers/input/keyboard/Kconfig | ||
216 | +++ b/drivers/input/keyboard/Kconfig | ||
217 | @@ -2,7 +2,7 @@ | ||
218 | # Input core configuration | ||
219 | # | ||
220 | menuconfig INPUT_KEYBOARD | ||
221 | - bool "Keyboards" if EXPERT || !X86 | ||
222 | + bool "Keyboards" | ||
223 | default y | ||
224 | help | ||
225 | Say Y here, and a list of supported keyboards will be displayed. | ||
226 | @@ -67,7 +67,7 @@ config KEYBOARD_ATARI | ||
227 | module will be called atakbd. | ||
228 | |||
229 | config KEYBOARD_ATKBD | ||
230 | - tristate "AT keyboard" if EXPERT || !X86 | ||
231 | + tristate "AT keyboard" | ||
232 | default y | ||
233 | select SERIO | ||
234 | select SERIO_LIBPS2 | ||
235 | diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig | ||
236 | index 55f2c2293ec6..93d4182a8916 100644 | ||
237 | --- a/drivers/input/serio/Kconfig | ||
238 | +++ b/drivers/input/serio/Kconfig | ||
239 | @@ -2,7 +2,7 @@ | ||
240 | # Input core configuration | ||
241 | # | ||
242 | config SERIO | ||
243 | - tristate "Serial I/O support" if EXPERT || !X86 | ||
244 | + tristate "Serial I/O support" | ||
245 | default y | ||
246 | help | ||
247 | Say Yes here if you have any input device that uses serial I/O to | ||
248 | @@ -19,7 +19,7 @@ config SERIO | ||
249 | if SERIO | ||
250 | |||
251 | config SERIO_I8042 | ||
252 | - tristate "i8042 PC Keyboard controller" if EXPERT || !X86 | ||
253 | + tristate "i8042 PC Keyboard controller" | ||
254 | default y | ||
255 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ | ||
256 | (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN | ||
257 | @@ -168,7 +168,7 @@ config SERIO_MACEPS2 | ||
258 | module will be called maceps2. | ||
259 | |||
260 | config SERIO_LIBPS2 | ||
261 | - tristate "PS/2 driver library" if EXPERT | ||
262 | + tristate "PS/2 driver library" | ||
263 | depends on SERIO_I8042 || SERIO_I8042=n | ||
264 | help | ||
265 | Say Y here if you are using a driver for device connected | ||
266 | diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c | ||
267 | index 00e5fcac8fdf..cbee842f8b6b 100644 | ||
268 | --- a/drivers/misc/enclosure.c | ||
269 | +++ b/drivers/misc/enclosure.c | ||
270 | @@ -198,6 +198,13 @@ static void enclosure_remove_links(struct enclosure_component *cdev) | ||
271 | { | ||
272 | char name[ENCLOSURE_NAME_SIZE]; | ||
273 | |||
274 | + /* | ||
275 | + * In odd circumstances, like multipath devices, something else may | ||
276 | + * already have removed the links, so check for this condition first. | ||
277 | + */ | ||
278 | + if (!cdev->dev->kobj.sd) | ||
279 | + return; | ||
280 | + | ||
281 | enclosure_link_name(cdev, name); | ||
282 | sysfs_remove_link(&cdev->dev->kobj, name); | ||
283 | sysfs_remove_link(&cdev->cdev.kobj, "device"); | ||
284 | diff --git a/drivers/net/ethernet/smsc/smc91x.h b/drivers/net/ethernet/smsc/smc91x.h | ||
285 | index 5f53fbbf67be..ff1af41e4b5d 100644 | ||
286 | --- a/drivers/net/ethernet/smsc/smc91x.h | ||
287 | +++ b/drivers/net/ethernet/smsc/smc91x.h | ||
288 | @@ -46,7 +46,8 @@ | ||
289 | defined(CONFIG_MACH_LITTLETON) ||\ | ||
290 | defined(CONFIG_MACH_ZYLONITE2) ||\ | ||
291 | defined(CONFIG_ARCH_VIPER) ||\ | ||
292 | - defined(CONFIG_MACH_STARGATE2) | ||
293 | + defined(CONFIG_MACH_STARGATE2) ||\ | ||
294 | + defined(CONFIG_ARCH_VERSATILE) | ||
295 | |||
296 | #include <asm/mach-types.h> | ||
297 | |||
298 | @@ -154,6 +155,8 @@ static inline void SMC_outw(u16 val, void __iomem *ioaddr, int reg) | ||
299 | #define SMC_outl(v, a, r) writel(v, (a) + (r)) | ||
300 | #define SMC_insl(a, r, p, l) readsl((a) + (r), p, l) | ||
301 | #define SMC_outsl(a, r, p, l) writesl((a) + (r), p, l) | ||
302 | +#define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | ||
303 | +#define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | ||
304 | #define SMC_IRQ_FLAGS (-1) /* from resource */ | ||
305 | |||
306 | /* We actually can't write halfwords properly if not word aligned */ | ||
307 | @@ -206,23 +209,6 @@ SMC_outw(u16 val, void __iomem *ioaddr, int reg) | ||
308 | #define RPC_LSA_DEFAULT RPC_LED_TX_RX | ||
309 | #define RPC_LSB_DEFAULT RPC_LED_100_10 | ||
310 | |||
311 | -#elif defined(CONFIG_ARCH_VERSATILE) | ||
312 | - | ||
313 | -#define SMC_CAN_USE_8BIT 1 | ||
314 | -#define SMC_CAN_USE_16BIT 1 | ||
315 | -#define SMC_CAN_USE_32BIT 1 | ||
316 | -#define SMC_NOWAIT 1 | ||
317 | - | ||
318 | -#define SMC_inb(a, r) readb((a) + (r)) | ||
319 | -#define SMC_inw(a, r) readw((a) + (r)) | ||
320 | -#define SMC_inl(a, r) readl((a) + (r)) | ||
321 | -#define SMC_outb(v, a, r) writeb(v, (a) + (r)) | ||
322 | -#define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
323 | -#define SMC_outl(v, a, r) writel(v, (a) + (r)) | ||
324 | -#define SMC_insl(a, r, p, l) readsl((a) + (r), p, l) | ||
325 | -#define SMC_outsl(a, r, p, l) writesl((a) + (r), p, l) | ||
326 | -#define SMC_IRQ_FLAGS (-1) /* from resource */ | ||
327 | - | ||
328 | #elif defined(CONFIG_MN10300) | ||
329 | |||
330 | /* | ||
331 | diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c | ||
332 | index b0fefc435c03..599240af2244 100644 | ||
333 | --- a/drivers/scsi/hpsa.c | ||
334 | +++ b/drivers/scsi/hpsa.c | ||
335 | @@ -1219,7 +1219,7 @@ static void complete_scsi_command(struct CommandList *cp) | ||
336 | "has check condition: aborted command: " | ||
337 | "ASC: 0x%x, ASCQ: 0x%x\n", | ||
338 | cp, asc, ascq); | ||
339 | - cmd->result = DID_SOFT_ERROR << 16; | ||
340 | + cmd->result |= DID_SOFT_ERROR << 16; | ||
341 | break; | ||
342 | } | ||
343 | /* Must be some other type of check condition */ | ||
344 | @@ -4466,7 +4466,7 @@ reinit_after_soft_reset: | ||
345 | hpsa_hba_inquiry(h); | ||
346 | hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */ | ||
347 | start_controller_lockup_detector(h); | ||
348 | - return 1; | ||
349 | + return 0; | ||
350 | |||
351 | clean4: | ||
352 | hpsa_free_sg_chain_blocks(h); | ||
353 | diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c | ||
354 | index d109cc3a17b6..51ee663c1310 100644 | ||
355 | --- a/drivers/scsi/libsas/sas_ata.c | ||
356 | +++ b/drivers/scsi/libsas/sas_ata.c | ||
357 | @@ -211,7 +211,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) | ||
358 | qc->tf.nsect = 0; | ||
359 | } | ||
360 | |||
361 | - ata_tf_to_fis(&qc->tf, 1, 0, (u8*)&task->ata_task.fis); | ||
362 | + ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis); | ||
363 | task->uldd_task = qc; | ||
364 | if (ata_is_atapi(qc->tf.protocol)) { | ||
365 | memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); | ||
366 | diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c | ||
367 | index e411f1865298..4a9dd86bce8e 100644 | ||
368 | --- a/drivers/usb/class/cdc-acm.c | ||
369 | +++ b/drivers/usb/class/cdc-acm.c | ||
370 | @@ -1542,6 +1542,8 @@ static int acm_reset_resume(struct usb_interface *intf) | ||
371 | |||
372 | static const struct usb_device_id acm_ids[] = { | ||
373 | /* quirky and broken devices */ | ||
374 | + { USB_DEVICE(0x17ef, 0x7000), /* Lenovo USB modem */ | ||
375 | + .driver_info = NO_UNION_NORMAL, },/* has no union descriptor */ | ||
376 | { USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */ | ||
377 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ | ||
378 | }, | ||
379 | diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c | ||
380 | index 91293b68df5a..8ccbf5e6b549 100644 | ||
381 | --- a/drivers/usb/serial/mos7840.c | ||
382 | +++ b/drivers/usb/serial/mos7840.c | ||
383 | @@ -1962,25 +1962,25 @@ static void mos7840_change_port_settings(struct tty_struct *tty, | ||
384 | iflag = tty->termios->c_iflag; | ||
385 | |||
386 | /* Change the number of bits */ | ||
387 | - if (cflag & CSIZE) { | ||
388 | - switch (cflag & CSIZE) { | ||
389 | - case CS5: | ||
390 | - lData = LCR_BITS_5; | ||
391 | - break; | ||
392 | + switch (cflag & CSIZE) { | ||
393 | + case CS5: | ||
394 | + lData = LCR_BITS_5; | ||
395 | + break; | ||
396 | |||
397 | - case CS6: | ||
398 | - lData = LCR_BITS_6; | ||
399 | - break; | ||
400 | + case CS6: | ||
401 | + lData = LCR_BITS_6; | ||
402 | + break; | ||
403 | |||
404 | - case CS7: | ||
405 | - lData = LCR_BITS_7; | ||
406 | - break; | ||
407 | - default: | ||
408 | - case CS8: | ||
409 | - lData = LCR_BITS_8; | ||
410 | - break; | ||
411 | - } | ||
412 | + case CS7: | ||
413 | + lData = LCR_BITS_7; | ||
414 | + break; | ||
415 | + | ||
416 | + default: | ||
417 | + case CS8: | ||
418 | + lData = LCR_BITS_8; | ||
419 | + break; | ||
420 | } | ||
421 | + | ||
422 | /* Change the Parity bit */ | ||
423 | if (cflag & PARENB) { | ||
424 | if (cflag & PARODD) { | ||
425 | diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c | ||
426 | index a1a9062954c4..1dcccd43d629 100644 | ||
427 | --- a/drivers/usb/serial/pl2303.c | ||
428 | +++ b/drivers/usb/serial/pl2303.c | ||
429 | @@ -290,24 +290,22 @@ static void pl2303_set_termios(struct tty_struct *tty, | ||
430 | dbg("0xa1:0x21:0:0 %d - %x %x %x %x %x %x %x", i, | ||
431 | buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]); | ||
432 | |||
433 | - if (cflag & CSIZE) { | ||
434 | - switch (cflag & CSIZE) { | ||
435 | - case CS5: | ||
436 | - buf[6] = 5; | ||
437 | - break; | ||
438 | - case CS6: | ||
439 | - buf[6] = 6; | ||
440 | - break; | ||
441 | - case CS7: | ||
442 | - buf[6] = 7; | ||
443 | - break; | ||
444 | - default: | ||
445 | - case CS8: | ||
446 | - buf[6] = 8; | ||
447 | - break; | ||
448 | - } | ||
449 | - dbg("%s - data bits = %d", __func__, buf[6]); | ||
450 | + switch (cflag & CSIZE) { | ||
451 | + case CS5: | ||
452 | + buf[6] = 5; | ||
453 | + break; | ||
454 | + case CS6: | ||
455 | + buf[6] = 6; | ||
456 | + break; | ||
457 | + case CS7: | ||
458 | + buf[6] = 7; | ||
459 | + break; | ||
460 | + default: | ||
461 | + case CS8: | ||
462 | + buf[6] = 8; | ||
463 | + break; | ||
464 | } | ||
465 | + dbg("%s - data bits = %d", __func__, buf[6]); | ||
466 | |||
467 | /* For reference buf[0]:buf[3] baud rate value */ | ||
468 | /* NOTE: Only the values defined in baud_sup are supported ! | ||
469 | diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c | ||
470 | index f06c9a8f3d37..003ef9019ad8 100644 | ||
471 | --- a/drivers/usb/serial/spcp8x5.c | ||
472 | +++ b/drivers/usb/serial/spcp8x5.c | ||
473 | @@ -396,22 +396,20 @@ static void spcp8x5_set_termios(struct tty_struct *tty, | ||
474 | } | ||
475 | |||
476 | /* Set Data Length : 00:5bit, 01:6bit, 10:7bit, 11:8bit */ | ||
477 | - if (cflag & CSIZE) { | ||
478 | - switch (cflag & CSIZE) { | ||
479 | - case CS5: | ||
480 | - buf[1] |= SET_UART_FORMAT_SIZE_5; | ||
481 | - break; | ||
482 | - case CS6: | ||
483 | - buf[1] |= SET_UART_FORMAT_SIZE_6; | ||
484 | - break; | ||
485 | - case CS7: | ||
486 | - buf[1] |= SET_UART_FORMAT_SIZE_7; | ||
487 | - break; | ||
488 | - default: | ||
489 | - case CS8: | ||
490 | - buf[1] |= SET_UART_FORMAT_SIZE_8; | ||
491 | - break; | ||
492 | - } | ||
493 | + switch (cflag & CSIZE) { | ||
494 | + case CS5: | ||
495 | + buf[1] |= SET_UART_FORMAT_SIZE_5; | ||
496 | + break; | ||
497 | + case CS6: | ||
498 | + buf[1] |= SET_UART_FORMAT_SIZE_6; | ||
499 | + break; | ||
500 | + case CS7: | ||
501 | + buf[1] |= SET_UART_FORMAT_SIZE_7; | ||
502 | + break; | ||
503 | + default: | ||
504 | + case CS8: | ||
505 | + buf[1] |= SET_UART_FORMAT_SIZE_8; | ||
506 | + break; | ||
507 | } | ||
508 | |||
509 | /* Set Stop bit2 : 0:1bit 1:2bit */ | ||
510 | diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c | ||
511 | index cabddb5da071..a7ea637bf215 100644 | ||
512 | --- a/fs/nfs/nfs4proc.c | ||
513 | +++ b/fs/nfs/nfs4proc.c | ||
514 | @@ -4041,11 +4041,17 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) | ||
515 | return; | ||
516 | |||
517 | switch (task->tk_status) { | ||
518 | - case -NFS4ERR_STALE_STATEID: | ||
519 | - case -NFS4ERR_EXPIRED: | ||
520 | case 0: | ||
521 | renew_lease(data->res.server, data->timestamp); | ||
522 | break; | ||
523 | + case -NFS4ERR_ADMIN_REVOKED: | ||
524 | + case -NFS4ERR_DELEG_REVOKED: | ||
525 | + case -NFS4ERR_BAD_STATEID: | ||
526 | + case -NFS4ERR_OLD_STATEID: | ||
527 | + case -NFS4ERR_STALE_STATEID: | ||
528 | + case -NFS4ERR_EXPIRED: | ||
529 | + task->tk_status = 0; | ||
530 | + break; | ||
531 | default: | ||
532 | if (nfs4_async_handle_error(task, data->res.server, NULL) == | ||
533 | -EAGAIN) { | ||
534 | diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h | ||
535 | index 3744d2a642df..2cddd2b92c19 100644 | ||
536 | --- a/include/crypto/scatterwalk.h | ||
537 | +++ b/include/crypto/scatterwalk.h | ||
538 | @@ -36,6 +36,7 @@ static inline void scatterwalk_sg_chain(struct scatterlist *sg1, int num, | ||
539 | { | ||
540 | sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0); | ||
541 | sg1[num - 1].page_link &= ~0x02; | ||
542 | + sg1[num - 1].page_link |= 0x01; | ||
543 | } | ||
544 | |||
545 | static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg) | ||
546 | @@ -43,7 +44,7 @@ static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg) | ||
547 | if (sg_is_last(sg)) | ||
548 | return NULL; | ||
549 | |||
550 | - return (++sg)->length ? sg : (void *)sg_page(sg); | ||
551 | + return (++sg)->length ? sg : sg_chain_ptr(sg); | ||
552 | } | ||
553 | |||
554 | static inline void scatterwalk_crypto_chain(struct scatterlist *head, | ||
555 | diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c | ||
556 | index 15e53b1766a6..dcd3f9796817 100644 | ||
557 | --- a/kernel/irq/pm.c | ||
558 | +++ b/kernel/irq/pm.c | ||
559 | @@ -50,7 +50,7 @@ static void resume_irqs(bool want_early) | ||
560 | bool is_early = desc->action && | ||
561 | desc->action->flags & IRQF_EARLY_RESUME; | ||
562 | |||
563 | - if (is_early != want_early) | ||
564 | + if (!is_early && want_early) | ||
565 | continue; | ||
566 | |||
567 | raw_spin_lock_irqsave(&desc->lock, flags); | ||
568 | diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c | ||
569 | index 7949b5d1663f..19e784237f7a 100644 | ||
570 | --- a/net/ipv4/udp.c | ||
571 | +++ b/net/ipv4/udp.c | ||
572 | @@ -1042,6 +1042,9 @@ int udp_sendpage(struct sock *sk, struct page *page, int offset, | ||
573 | if (flags & MSG_SENDPAGE_NOTLAST) | ||
574 | flags |= MSG_MORE; | ||
575 | |||
576 | + if (flags & MSG_SENDPAGE_NOTLAST) | ||
577 | + flags |= MSG_MORE; | ||
578 | + | ||
579 | if (!up->pending) { | ||
580 | struct msghdr msg = { .msg_flags = flags|MSG_MORE }; | ||
581 | |||
582 | diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c | ||
583 | index a32caa72bd7d..8b5afc1d2e60 100644 | ||
584 | --- a/sound/soc/codecs/wm8731.c | ||
585 | +++ b/sound/soc/codecs/wm8731.c | ||
586 | @@ -406,10 +406,10 @@ static int wm8731_set_dai_fmt(struct snd_soc_dai *codec_dai, | ||
587 | iface |= 0x0001; | ||
588 | break; | ||
589 | case SND_SOC_DAIFMT_DSP_A: | ||
590 | - iface |= 0x0003; | ||
591 | + iface |= 0x0013; | ||
592 | break; | ||
593 | case SND_SOC_DAIFMT_DSP_B: | ||
594 | - iface |= 0x0013; | ||
595 | + iface |= 0x0003; | ||
596 | break; | ||
597 | default: | ||
598 | return -EINVAL; | ||
599 | diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c | ||
600 | index 9d242351e6e8..d5ab3351c2bc 100644 | ||
601 | --- a/sound/soc/codecs/wm8990.c | ||
602 | +++ b/sound/soc/codecs/wm8990.c | ||
603 | @@ -1265,6 +1265,8 @@ static int wm8990_set_bias_level(struct snd_soc_codec *codec, | ||
604 | |||
605 | /* disable POBCTRL, SOFT_ST and BUFDCOPEN */ | ||
606 | snd_soc_write(codec, WM8990_ANTIPOP2, 0x0); | ||
607 | + | ||
608 | + codec->cache_sync = 1; | ||
609 | break; | ||
610 | } | ||
611 |