Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2338 - (hide annotations) (download)
Thu Dec 12 08:43:49 2013 UTC (10 years, 6 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