/[linux-patches]/genpatches-2.6/trunk/3.4/1017_linux-3.4.18.patch
Gentoo

Contents of /genpatches-2.6/trunk/3.4/1017_linux-3.4.18.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2254 - (show annotations) (download)
Wed Dec 19 19:51:16 2012 UTC (18 months, 3 weeks ago) by mpagano
File size: 18639 byte(s)
Linux patches 3.4.12 through and including 3.4.24
1 diff --git a/Makefile b/Makefile
2 index 3f9f076..95de447 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,6 +1,6 @@
6 VERSION = 3
7 PATCHLEVEL = 4
8 -SUBLEVEL = 17
9 +SUBLEVEL = 18
10 EXTRAVERSION =
11 NAME = Saber-toothed Squirrel
12
13 diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
14 index c2b77e5..5ccd6e8 100644
15 --- a/arch/arm/mach-exynos/common.c
16 +++ b/arch/arm/mach-exynos/common.c
17 @@ -44,7 +44,6 @@
18 #include <plat/fimc-core.h>
19 #include <plat/iic-core.h>
20 #include <plat/tv-core.h>
21 -#include <plat/spi-core.h>
22 #include <plat/regs-serial.h>
23
24 #include "common.h"
25 @@ -339,8 +338,6 @@ static void __init exynos4_map_io(void)
26
27 s5p_fb_setname(0, "exynos4-fb");
28 s5p_hdmi_setname("exynos4-hdmi");
29 -
30 - s3c64xx_spi_setname("exynos4210-spi");
31 }
32
33 static void __init exynos5_map_io(void)
34 @@ -361,8 +358,6 @@ static void __init exynos5_map_io(void)
35 s3c_i2c0_setname("s3c2440-i2c");
36 s3c_i2c1_setname("s3c2440-i2c");
37 s3c_i2c2_setname("s3c2440-i2c");
38 -
39 - s3c64xx_spi_setname("exynos4210-spi");
40 }
41
42 static void __init exynos4_init_clocks(int xtal)
43 diff --git a/arch/arm/mach-s3c24xx/s3c2416.c b/arch/arm/mach-s3c24xx/s3c2416.c
44 index f74818d..7743fad 100644
45 --- a/arch/arm/mach-s3c24xx/s3c2416.c
46 +++ b/arch/arm/mach-s3c24xx/s3c2416.c
47 @@ -61,7 +61,6 @@
48 #include <plat/nand-core.h>
49 #include <plat/adc-core.h>
50 #include <plat/rtc-core.h>
51 -#include <plat/spi-core.h>
52
53 static struct map_desc s3c2416_iodesc[] __initdata = {
54 IODESC_ENT(WATCHDOG),
55 @@ -132,7 +131,6 @@ void __init s3c2416_map_io(void)
56 /* initialize device information early */
57 s3c2416_default_sdhci0();
58 s3c2416_default_sdhci1();
59 - s3c64xx_spi_setname("s3c2443-spi");
60
61 iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
62 }
63 diff --git a/arch/arm/mach-s3c24xx/s3c2443.c b/arch/arm/mach-s3c24xx/s3c2443.c
64 index 165b6a6..ab648ad 100644
65 --- a/arch/arm/mach-s3c24xx/s3c2443.c
66 +++ b/arch/arm/mach-s3c24xx/s3c2443.c
67 @@ -43,7 +43,6 @@
68 #include <plat/nand-core.h>
69 #include <plat/adc-core.h>
70 #include <plat/rtc-core.h>
71 -#include <plat/spi-core.h>
72
73 static struct map_desc s3c2443_iodesc[] __initdata = {
74 IODESC_ENT(WATCHDOG),
75 @@ -101,9 +100,6 @@ void __init s3c2443_map_io(void)
76 s3c24xx_gpiocfg_default.set_pull = s3c2443_gpio_setpull;
77 s3c24xx_gpiocfg_default.get_pull = s3c2443_gpio_getpull;
78
79 - /* initialize device information early */
80 - s3c64xx_spi_setname("s3c2443-spi");
81 -
82 iotable_init(s3c2443_iodesc, ARRAY_SIZE(s3c2443_iodesc));
83 }
84
85 diff --git a/arch/arm/mach-s5p64x0/common.c b/arch/arm/mach-s5p64x0/common.c
86 index 111e404..6e6a0a9 100644
87 --- a/arch/arm/mach-s5p64x0/common.c
88 +++ b/arch/arm/mach-s5p64x0/common.c
89 @@ -44,7 +44,6 @@
90 #include <plat/sdhci.h>
91 #include <plat/adc-core.h>
92 #include <plat/fb-core.h>
93 -#include <plat/spi-core.h>
94 #include <plat/gpio-cfg.h>
95 #include <plat/regs-irqtype.h>
96 #include <plat/regs-serial.h>
97 @@ -180,7 +179,6 @@ void __init s5p6440_map_io(void)
98 /* initialize any device information early */
99 s3c_adc_setname("s3c64xx-adc");
100 s3c_fb_setname("s5p64x0-fb");
101 - s3c64xx_spi_setname("s5p64x0-spi");
102
103 s5p64x0_default_sdhci0();
104 s5p64x0_default_sdhci1();
105 @@ -195,7 +193,6 @@ void __init s5p6450_map_io(void)
106 /* initialize any device information early */
107 s3c_adc_setname("s3c64xx-adc");
108 s3c_fb_setname("s5p64x0-fb");
109 - s3c64xx_spi_setname("s5p64x0-spi");
110
111 s5p64x0_default_sdhci0();
112 s5p64x0_default_sdhci1();
113 diff --git a/arch/arm/mach-s5pc100/common.c b/arch/arm/mach-s5pc100/common.c
114 index cc6e561..6219086 100644
115 --- a/arch/arm/mach-s5pc100/common.c
116 +++ b/arch/arm/mach-s5pc100/common.c
117 @@ -45,7 +45,6 @@
118 #include <plat/fb-core.h>
119 #include <plat/iic-core.h>
120 #include <plat/onenand-core.h>
121 -#include <plat/spi-core.h>
122 #include <plat/regs-serial.h>
123 #include <plat/watchdog-reset.h>
124
125 @@ -166,8 +165,6 @@ void __init s5pc100_map_io(void)
126 s3c_onenand_setname("s5pc100-onenand");
127 s3c_fb_setname("s5pc100-fb");
128 s3c_cfcon_setname("s5pc100-pata");
129 -
130 - s3c64xx_spi_setname("s5pc100-spi");
131 }
132
133 void __init s5pc100_init_clocks(int xtal)
134 diff --git a/arch/arm/mach-s5pv210/common.c b/arch/arm/mach-s5pv210/common.c
135 index a0c50ef..4c9e902 100644
136 --- a/arch/arm/mach-s5pv210/common.c
137 +++ b/arch/arm/mach-s5pv210/common.c
138 @@ -43,7 +43,6 @@
139 #include <plat/iic-core.h>
140 #include <plat/keypad-core.h>
141 #include <plat/tv-core.h>
142 -#include <plat/spi-core.h>
143 #include <plat/regs-serial.h>
144
145 #include "common.h"
146 @@ -197,8 +196,6 @@ void __init s5pv210_map_io(void)
147
148 /* setup TV devices */
149 s5p_hdmi_setname("s5pv210-hdmi");
150 -
151 - s3c64xx_spi_setname("s5pv210-spi");
152 }
153
154 void __init s5pv210_init_clocks(int xtal)
155 diff --git a/arch/arm/plat-samsung/include/plat/spi-core.h b/arch/arm/plat-samsung/include/plat/spi-core.h
156 deleted file mode 100644
157 index 0b9428a..0000000
158 --- a/arch/arm/plat-samsung/include/plat/spi-core.h
159 +++ /dev/null
160 @@ -1,30 +0,0 @@
161 -/*
162 - * Copyright (C) 2012 Heiko Stuebner <heiko@sntech.de>
163 - *
164 - * This program is free software; you can redistribute it and/or modify
165 - * it under the terms of the GNU General Public License version 2 as
166 - * published by the Free Software Foundation.
167 - */
168 -
169 -#ifndef __PLAT_S3C_SPI_CORE_H
170 -#define __PLAT_S3C_SPI_CORE_H
171 -
172 -/* These functions are only for use with the core support code, such as
173 - * the cpu specific initialisation code
174 - */
175 -
176 -/* re-define device name depending on support. */
177 -static inline void s3c64xx_spi_setname(char *name)
178 -{
179 -#ifdef CONFIG_S3C64XX_DEV_SPI0
180 - s3c64xx_device_spi0.name = name;
181 -#endif
182 -#ifdef CONFIG_S3C64XX_DEV_SPI1
183 - s3c64xx_device_spi1.name = name;
184 -#endif
185 -#ifdef CONFIG_S3C64XX_DEV_SPI2
186 - s3c64xx_device_spi2.name = name;
187 -#endif
188 -}
189 -
190 -#endif /* __PLAT_S3C_SPI_CORE_H */
191 diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
192 index b0b00d7..c82f06e 100644
193 --- a/drivers/block/floppy.c
194 +++ b/drivers/block/floppy.c
195 @@ -4161,6 +4161,7 @@ static int __init floppy_init(void)
196
197 disks[dr]->queue = blk_init_queue(do_fd_request, &floppy_lock);
198 if (!disks[dr]->queue) {
199 + put_disk(disks[dr]);
200 err = -ENOMEM;
201 goto out_put_disk;
202 }
203 diff --git a/drivers/gpio/gpio-timberdale.c b/drivers/gpio/gpio-timberdale.c
204 index 031c6ad..1a3e2b9 100644
205 --- a/drivers/gpio/gpio-timberdale.c
206 +++ b/drivers/gpio/gpio-timberdale.c
207 @@ -116,7 +116,7 @@ static void timbgpio_irq_disable(struct irq_data *d)
208 unsigned long flags;
209
210 spin_lock_irqsave(&tgpio->lock, flags);
211 - tgpio->last_ier &= ~(1 << offset);
212 + tgpio->last_ier &= ~(1UL << offset);
213 iowrite32(tgpio->last_ier, tgpio->membase + TGPIO_IER);
214 spin_unlock_irqrestore(&tgpio->lock, flags);
215 }
216 @@ -128,7 +128,7 @@ static void timbgpio_irq_enable(struct irq_data *d)
217 unsigned long flags;
218
219 spin_lock_irqsave(&tgpio->lock, flags);
220 - tgpio->last_ier |= 1 << offset;
221 + tgpio->last_ier |= 1UL << offset;
222 iowrite32(tgpio->last_ier, tgpio->membase + TGPIO_IER);
223 spin_unlock_irqrestore(&tgpio->lock, flags);
224 }
225 diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
226 index 5a75510..112c16e 100644
227 --- a/drivers/gpio/gpiolib.c
228 +++ b/drivers/gpio/gpiolib.c
229 @@ -623,9 +623,11 @@ static ssize_t export_store(struct class *class,
230 */
231
232 status = gpio_request(gpio, "sysfs");
233 - if (status < 0)
234 + if (status < 0) {
235 + if (status == -EPROBE_DEFER)
236 + status = -ENODEV;
237 goto done;
238 -
239 + }
240 status = gpio_export(gpio, true);
241 if (status < 0)
242 gpio_free(gpio);
243 @@ -1191,8 +1193,10 @@ int gpio_request(unsigned gpio, const char *label)
244
245 spin_lock_irqsave(&gpio_lock, flags);
246
247 - if (!gpio_is_valid(gpio))
248 + if (!gpio_is_valid(gpio)) {
249 + status = -EINVAL;
250 goto done;
251 + }
252 desc = &gpio_desc[gpio];
253 chip = desc->chip;
254 if (chip == NULL)
255 diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c
256 index 4f2030b..05091c2 100644
257 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c
258 +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c
259 @@ -186,11 +186,13 @@ nouveau_pci_suspend(struct pci_dev *pdev, pm_message_t pm_state)
260 if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
261 return 0;
262
263 - NV_INFO(dev, "Disabling display...\n");
264 - nouveau_display_fini(dev);
265 + if (dev->mode_config.num_crtc) {
266 + NV_INFO(dev, "Disabling display...\n");
267 + nouveau_display_fini(dev);
268
269 - NV_INFO(dev, "Disabling fbcon...\n");
270 - nouveau_fbcon_set_suspend(dev, 1);
271 + NV_INFO(dev, "Disabling fbcon...\n");
272 + nouveau_fbcon_set_suspend(dev, 1);
273 + }
274
275 NV_INFO(dev, "Unpinning framebuffer(s)...\n");
276 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
277 @@ -363,10 +365,12 @@ nouveau_pci_resume(struct pci_dev *pdev)
278 NV_ERROR(dev, "Could not pin/map cursor.\n");
279 }
280
281 - nouveau_fbcon_set_suspend(dev, 0);
282 - nouveau_fbcon_zfill_all(dev);
283 + if (dev->mode_config.num_crtc) {
284 + nouveau_fbcon_set_suspend(dev, 0);
285 + nouveau_fbcon_zfill_all(dev);
286
287 - nouveau_display_init(dev);
288 + nouveau_display_init(dev);
289 + }
290
291 /* Force CLUT to get re-loaded during modeset */
292 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
293 @@ -468,9 +472,7 @@ static int __init nouveau_init(void)
294 #ifdef CONFIG_VGA_CONSOLE
295 if (vgacon_text_force())
296 nouveau_modeset = 0;
297 - else
298 #endif
299 - nouveau_modeset = 1;
300 }
301
302 if (!nouveau_modeset)
303 diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
304 index c2a8511..b096cf2 100644
305 --- a/drivers/gpu/drm/nouveau/nouveau_state.c
306 +++ b/drivers/gpu/drm/nouveau/nouveau_state.c
307 @@ -47,6 +47,7 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev)
308 {
309 struct drm_nouveau_private *dev_priv = dev->dev_private;
310 struct nouveau_engine *engine = &dev_priv->engine;
311 + u32 pclass = dev->pdev->class >> 8;
312
313 switch (dev_priv->chipset & 0xf0) {
314 case 0x00:
315 @@ -526,7 +527,8 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev)
316 }
317
318 /* headless mode */
319 - if (nouveau_modeset == 2) {
320 + if (nouveau_modeset == 2 ||
321 + (nouveau_modeset < 0 && pclass != PCI_CLASS_DISPLAY_VGA)) {
322 engine->display.early_init = nouveau_stub_init;
323 engine->display.late_takedown = nouveau_stub_takedown;
324 engine->display.create = nouveau_stub_init;
325 diff --git a/drivers/gpu/drm/nouveau/nv04_dac.c b/drivers/gpu/drm/nouveau/nv04_dac.c
326 index 8300266..f180dcf 100644
327 --- a/drivers/gpu/drm/nouveau/nv04_dac.c
328 +++ b/drivers/gpu/drm/nouveau/nv04_dac.c
329 @@ -210,7 +210,7 @@ out:
330 NVWriteVgaCrtc(dev, 0, NV_CIO_CR_MODE_INDEX, saved_cr_mode);
331
332 if (blue == 0x18) {
333 - NV_INFO(dev, "Load detected on head A\n");
334 + NV_DEBUG(dev, "Load detected on head A\n");
335 return connector_status_connected;
336 }
337
338 @@ -323,7 +323,7 @@ nv17_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector)
339
340 if (nv17_dac_sample_load(encoder) &
341 NV_PRAMDAC_TEST_CONTROL_SENSEB_ALLHI) {
342 - NV_INFO(dev, "Load detected on output %c\n",
343 + NV_DEBUG(dev, "Load detected on output %c\n",
344 '@' + ffs(dcb->or));
345 return connector_status_connected;
346 } else {
347 @@ -398,7 +398,7 @@ static void nv04_dac_commit(struct drm_encoder *encoder)
348
349 helper->dpms(encoder, DRM_MODE_DPMS_ON);
350
351 - NV_INFO(dev, "Output %s is running on CRTC %d using output %c\n",
352 + NV_DEBUG(dev, "Output %s is running on CRTC %d using output %c\n",
353 drm_get_connector_name(&nouveau_encoder_connector_get(nv_encoder)->base),
354 nv_crtc->index, '@' + ffs(nv_encoder->dcb->or));
355 }
356 @@ -447,7 +447,7 @@ static void nv04_dac_dpms(struct drm_encoder *encoder, int mode)
357 return;
358 nv_encoder->last_dpms = mode;
359
360 - NV_INFO(dev, "Setting dpms mode %d on vga encoder (output %d)\n",
361 + NV_DEBUG(dev, "Setting dpms mode %d on vga encoder (output %d)\n",
362 mode, nv_encoder->dcb->index);
363
364 nv04_dac_update_dacclk(encoder, mode == DRM_MODE_DPMS_ON);
365 diff --git a/drivers/gpu/drm/nouveau/nv04_dfp.c b/drivers/gpu/drm/nouveau/nv04_dfp.c
366 index 2258746..473f30a 100644
367 --- a/drivers/gpu/drm/nouveau/nv04_dfp.c
368 +++ b/drivers/gpu/drm/nouveau/nv04_dfp.c
369 @@ -476,7 +476,7 @@ static void nv04_dfp_commit(struct drm_encoder *encoder)
370
371 helper->dpms(encoder, DRM_MODE_DPMS_ON);
372
373 - NV_INFO(dev, "Output %s is running on CRTC %d using output %c\n",
374 + NV_DEBUG(dev, "Output %s is running on CRTC %d using output %c\n",
375 drm_get_connector_name(&nouveau_encoder_connector_get(nv_encoder)->base),
376 nv_crtc->index, '@' + ffs(nv_encoder->dcb->or));
377 }
378 @@ -519,7 +519,7 @@ static void nv04_lvds_dpms(struct drm_encoder *encoder, int mode)
379 return;
380 nv_encoder->last_dpms = mode;
381
382 - NV_INFO(dev, "Setting dpms mode %d on lvds encoder (output %d)\n",
383 + NV_DEBUG(dev, "Setting dpms mode %d on lvds encoder (output %d)\n",
384 mode, nv_encoder->dcb->index);
385
386 if (was_powersaving && is_powersaving_dpms(mode))
387 @@ -564,7 +564,7 @@ static void nv04_tmds_dpms(struct drm_encoder *encoder, int mode)
388 return;
389 nv_encoder->last_dpms = mode;
390
391 - NV_INFO(dev, "Setting dpms mode %d on tmds encoder (output %d)\n",
392 + NV_DEBUG(dev, "Setting dpms mode %d on tmds encoder (output %d)\n",
393 mode, nv_encoder->dcb->index);
394
395 nv04_dfp_update_backlight(encoder, mode);
396 diff --git a/drivers/gpu/drm/nouveau/nv04_tv.c b/drivers/gpu/drm/nouveau/nv04_tv.c
397 index 3eb605d..4de1fbe 100644
398 --- a/drivers/gpu/drm/nouveau/nv04_tv.c
399 +++ b/drivers/gpu/drm/nouveau/nv04_tv.c
400 @@ -69,7 +69,7 @@ static void nv04_tv_dpms(struct drm_encoder *encoder, int mode)
401 struct nv04_mode_state *state = &dev_priv->mode_reg;
402 uint8_t crtc1A;
403
404 - NV_INFO(dev, "Setting dpms mode %d on TV encoder (output %d)\n",
405 + NV_DEBUG(dev, "Setting dpms mode %d on TV encoder (output %d)\n",
406 mode, nv_encoder->dcb->index);
407
408 state->pllsel &= ~(PLLSEL_TV_CRTC1_MASK | PLLSEL_TV_CRTC2_MASK);
409 @@ -162,7 +162,7 @@ static void nv04_tv_commit(struct drm_encoder *encoder)
410
411 helper->dpms(encoder, DRM_MODE_DPMS_ON);
412
413 - NV_INFO(dev, "Output %s is running on CRTC %d using output %c\n",
414 + NV_DEBUG(dev, "Output %s is running on CRTC %d using output %c\n",
415 drm_get_connector_name(&nouveau_encoder_connector_get(nv_encoder)->base), nv_crtc->index,
416 '@' + ffs(nv_encoder->dcb->or));
417 }
418 diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
419 index e5c699b..3899989 100644
420 --- a/drivers/hid/hid-microsoft.c
421 +++ b/drivers/hid/hid-microsoft.c
422 @@ -29,22 +29,30 @@
423 #define MS_RDESC 0x08
424 #define MS_NOGET 0x10
425 #define MS_DUPLICATE_USAGES 0x20
426 +#define MS_RDESC_3K 0x40
427
428 -/*
429 - * Microsoft Wireless Desktop Receiver (Model 1028) has
430 - * 'Usage Min/Max' where it ought to have 'Physical Min/Max'
431 - */
432 static __u8 *ms_report_fixup(struct hid_device *hdev, __u8 *rdesc,
433 unsigned int *rsize)
434 {
435 unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
436
437 + /*
438 + * Microsoft Wireless Desktop Receiver (Model 1028) has
439 + * 'Usage Min/Max' where it ought to have 'Physical Min/Max'
440 + */
441 if ((quirks & MS_RDESC) && *rsize == 571 && rdesc[557] == 0x19 &&
442 rdesc[559] == 0x29) {
443 hid_info(hdev, "fixing up Microsoft Wireless Receiver Model 1028 report descriptor\n");
444 rdesc[557] = 0x35;
445 rdesc[559] = 0x45;
446 }
447 + /* the same as above (s/usage/physical/) */
448 + if ((quirks & MS_RDESC_3K) && *rsize == 106 &&
449 + !memcmp((char []){ 0x19, 0x00, 0x29, 0xff },
450 + &rdesc[94], 4)) {
451 + rdesc[94] = 0x35;
452 + rdesc[96] = 0x45;
453 + }
454 return rdesc;
455 }
456
457 @@ -193,7 +201,7 @@ static const struct hid_device_id ms_devices[] = {
458 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_USB),
459 .driver_data = MS_PRESENTER },
460 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K),
461 - .driver_data = MS_ERGONOMY },
462 + .driver_data = MS_ERGONOMY | MS_RDESC_3K },
463 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0),
464 .driver_data = MS_NOGET },
465 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500),
466 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
467 index 23904d2..df44509 100644
468 --- a/drivers/md/raid1.c
469 +++ b/drivers/md/raid1.c
470 @@ -2564,7 +2564,7 @@ static struct r1conf *setup_conf(struct mddev *mddev)
471 || disk_idx < 0)
472 continue;
473 if (test_bit(Replacement, &rdev->flags))
474 - disk = conf->mirrors + conf->raid_disks + disk_idx;
475 + disk = conf->mirrors + mddev->raid_disks + disk_idx;
476 else
477 disk = conf->mirrors + disk_idx;
478
479 diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
480 index e4d6dc2..d6ffd43 100644
481 --- a/drivers/net/wireless/b43/main.c
482 +++ b/drivers/net/wireless/b43/main.c
483 @@ -5430,6 +5430,8 @@ static void b43_ssb_remove(struct ssb_device *sdev)
484 cancel_work_sync(&wldev->restart_work);
485
486 B43_WARN_ON(!wl);
487 + if (!wldev->fw.ucode.data)
488 + return; /* NULL if firmware never loaded */
489 if (wl->current_dev == wldev) {
490 /* Restore the queues count before unregistering, because firmware detect
491 * might have modified it. Restoring is important, so the networking
492 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
493 index d594460..69f3f7d 100644
494 --- a/drivers/target/target_core_transport.c
495 +++ b/drivers/target/target_core_transport.c
496 @@ -1748,7 +1748,6 @@ static void target_complete_tmr_failure(struct work_struct *work)
497
498 se_cmd->se_tmr_req->response = TMR_LUN_DOES_NOT_EXIST;
499 se_cmd->se_tfo->queue_tm_rsp(se_cmd);
500 - transport_generic_free_cmd(se_cmd, 0);
501 }
502
503 /**
504 diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
505 index 0ee374d..556cc82 100644
506 --- a/fs/ext4/ialloc.c
507 +++ b/fs/ext4/ialloc.c
508 @@ -697,6 +697,10 @@ repeat_in_this_group:
509 "inode=%lu", ino + 1);
510 continue;
511 }
512 + BUFFER_TRACE(inode_bitmap_bh, "get_write_access");
513 + err = ext4_journal_get_write_access(handle, inode_bitmap_bh);
514 + if (err)
515 + goto fail;
516 ext4_lock_group(sb, group);
517 ret2 = ext4_test_and_set_bit(ino, inode_bitmap_bh->b_data);
518 ext4_unlock_group(sb, group);
519 @@ -710,6 +714,11 @@ repeat_in_this_group:
520 goto out;
521
522 got:
523 + BUFFER_TRACE(inode_bitmap_bh, "call ext4_handle_dirty_metadata");
524 + err = ext4_handle_dirty_metadata(handle, NULL, inode_bitmap_bh);
525 + if (err)
526 + goto fail;
527 +
528 /* We may have to initialize the block bitmap if it isn't already */
529 if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
530 gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
531 @@ -742,11 +751,6 @@ got:
532 goto fail;
533 }
534
535 - BUFFER_TRACE(inode_bitmap_bh, "get_write_access");
536 - err = ext4_journal_get_write_access(handle, inode_bitmap_bh);
537 - if (err)
538 - goto fail;
539 -
540 BUFFER_TRACE(group_desc_bh, "get_write_access");
541 err = ext4_journal_get_write_access(handle, group_desc_bh);
542 if (err)
543 @@ -789,11 +793,6 @@ got:
544 ext4_unlock_group(sb, group);
545 }
546
547 - BUFFER_TRACE(inode_bitmap_bh, "call ext4_handle_dirty_metadata");
548 - err = ext4_handle_dirty_metadata(handle, NULL, inode_bitmap_bh);
549 - if (err)
550 - goto fail;
551 -
552 BUFFER_TRACE(group_desc_bh, "call ext4_handle_dirty_metadata");
553 err = ext4_handle_dirty_metadata(handle, NULL, group_desc_bh);
554 if (err)

  ViewVC Help
Powered by ViewVC 1.1.20