Contents of /trunk/kernel-lts/patches-3.4/0173-3.4.74-all-fixes.patch
Parent Directory | Revision Log
Revision 2338 -
(show 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 | 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 |