Magellan Linux

Contents of /trunk/kernel-lts/patches-3.4/0173-3.4.74-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2338 - (show annotations) (download)
Thu Dec 12 08:43:49 2013 UTC (10 years, 4 months ago) by niro
File size: 20423 byte(s)
-linux-3.4.74
1 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