From: Greg Kroah-Hartman Date: Thu, 3 Jun 2010 23:46:16 +0000 (-0700) Subject: .34 patches X-Git-Tag: v2.6.31.14~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3d8a0a961432c85612e202ac15a7132d50ef1f0;p=thirdparty%2Fkernel%2Fstable-queue.git .34 patches --- diff --git a/queue-2.6.34/ath5k-consistently-use-rx_bufsize-for-rx-dma.patch b/queue-2.6.34/ath5k-consistently-use-rx_bufsize-for-rx-dma.patch new file mode 100644 index 00000000000..51256c33c5d --- /dev/null +++ b/queue-2.6.34/ath5k-consistently-use-rx_bufsize-for-rx-dma.patch @@ -0,0 +1,55 @@ +From b5eae9ff5ba6d76de19286dd6429acd7cde3f79d Mon Sep 17 00:00:00 2001 +From: Bruno Randolf +Date: Wed, 19 May 2010 10:18:16 +0900 +Subject: ath5k: consistently use rx_bufsize for RX DMA + +From: Bruno Randolf + +commit b5eae9ff5ba6d76de19286dd6429acd7cde3f79d upstream. + +We should use the same buffer size we set up for DMA also in the hardware +descriptor. Previously we used common->rx_bufsize for setting up the DMA +mapping, but used skb_tailroom(skb) for the size we tell to the hardware in the +descriptor itself. The problem is that skb_tailroom(skb) can give us a larger +value than the size we set up for DMA before. This allows the hardware to write +into memory locations not set up for DMA. In practice this should rarely happen +because all packets should be smaller than the maximum 802.11 packet size. + +On the tested platform rx_bufsize is 2528, and we allocated an skb of 2559 +bytes length (including padding for cache alignment) but sbk_tailroom() was +2592. Just consistently use rx_bufsize for all RX DMA memory sizes. + +Also use the return value of the descriptor setup function. + +Signed-off-by: Bruno Randolf +Reviewed-by: Luis R. Rodriguez +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath5k/base.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/net/wireless/ath/ath5k/base.c ++++ b/drivers/net/wireless/ath/ath5k/base.c +@@ -1211,6 +1211,7 @@ ath5k_rxbuf_setup(struct ath5k_softc *sc + struct ath5k_hw *ah = sc->ah; + struct sk_buff *skb = bf->skb; + struct ath5k_desc *ds; ++ int ret; + + if (!skb) { + skb = ath5k_rx_skb_alloc(sc, &bf->skbaddr); +@@ -1237,9 +1238,9 @@ ath5k_rxbuf_setup(struct ath5k_softc *sc + ds = bf->desc; + ds->ds_link = bf->daddr; /* link to self */ + ds->ds_data = bf->skbaddr; +- ah->ah_setup_rx_desc(ah, ds, +- skb_tailroom(skb), /* buffer size */ +- 0); ++ ret = ah->ah_setup_rx_desc(ah, ds, ah->common.rx_bufsize, 0); ++ if (ret) ++ return ret; + + if (sc->rxlink != NULL) + *sc->rxlink = bf->daddr; diff --git a/queue-2.6.34/ath9k_hw-fix-hardware-deinit.patch b/queue-2.6.34/ath9k_hw-fix-hardware-deinit.patch new file mode 100644 index 00000000000..8f4c1c89116 --- /dev/null +++ b/queue-2.6.34/ath9k_hw-fix-hardware-deinit.patch @@ -0,0 +1,55 @@ +From 736b3a27b3c50c4a23717b802240435a69e8d0ff Mon Sep 17 00:00:00 2001 +From: Sujith +Date: Wed, 17 Mar 2010 14:25:24 +0530 +Subject: ath9k_hw: fix hardware deinit + +From: Sujith + +commit 736b3a27b3c50c4a23717b802240435a69e8d0ff upstream. + +Without this you will get a panic if the device initialization +fails. Also, free ath_hw instance properly. ath9k_hw_deinit() +shouldn't do it. + +Signed-off-by: Sujith +Signed-off-by: Luis R. Rodriguez +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/hw.c | 4 +--- + drivers/net/wireless/ath/ath9k/init.c | 3 +++ + 2 files changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -1241,7 +1241,7 @@ void ath9k_hw_deinit(struct ath_hw *ah) + { + struct ath_common *common = ath9k_hw_common(ah); + +- if (common->state <= ATH_HW_INITIALIZED) ++ if (common->state < ATH_HW_INITIALIZED) + goto free_hw; + + if (!AR_SREV_9100(ah)) +@@ -1252,8 +1252,6 @@ void ath9k_hw_deinit(struct ath_hw *ah) + free_hw: + if (!AR_SREV_9280_10_OR_LATER(ah)) + ath9k_hw_rf_free_ext_banks(ah); +- kfree(ah); +- ah = NULL; + } + EXPORT_SYMBOL(ath9k_hw_deinit); + +--- a/drivers/net/wireless/ath/ath9k/init.c ++++ b/drivers/net/wireless/ath/ath9k/init.c +@@ -760,6 +760,9 @@ static void ath9k_deinit_softc(struct at + + tasklet_kill(&sc->intr_tq); + tasklet_kill(&sc->bcon_tasklet); ++ ++ kfree(sc->sc_ah); ++ sc->sc_ah = NULL; + } + + void ath9k_deinit_device(struct ath_softc *sc) diff --git a/queue-2.6.34/can-fix-sja1000-command-register-writes-on-smp-systems.patch b/queue-2.6.34/can-fix-sja1000-command-register-writes-on-smp-systems.patch new file mode 100644 index 00000000000..c1822e342d3 --- /dev/null +++ b/queue-2.6.34/can-fix-sja1000-command-register-writes-on-smp-systems.patch @@ -0,0 +1,96 @@ +From 57c8a456640fa3ca777652f11f2db4179a3e66b6 Mon Sep 17 00:00:00 2001 +From: Oliver Hartkopp +Date: Tue, 18 May 2010 14:03:10 -0700 +Subject: can: Fix SJA1000 command register writes on SMP systems + +From: Oliver Hartkopp + +commit 57c8a456640fa3ca777652f11f2db4179a3e66b6 upstream. + +The SJA1000 command register is concurrently written in the rx-path to free +the receive buffer _and_ in the tx-path to start the transmission. + +The SJA1000 data sheet, 6.4.4 COMMAND REGISTER (CMR) states: +"Between two commands at least one internal clock cycle is needed in +order to proceed. The internal clock is half of the external oscillator +frequency." + +On SMP systems the current implementation leads to a write stall in the +tx-path, which can be solved by adding some general locking and some time +to settle the write_reg() operation for the command register. + +Thanks to Klaus Hitschler for the original fix and detailed problem +description. + +This patch applies on net-2.6 and (with some offsets) on net-next-2.6 . + +Signed-off-by: Oliver Hartkopp +Acked-by: Wolfgang Grandegger +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/can/sja1000/sja1000.c | 20 +++++++++++++++++--- + drivers/net/can/sja1000/sja1000.h | 1 + + 2 files changed, 18 insertions(+), 3 deletions(-) + +--- a/drivers/net/can/sja1000/sja1000.c ++++ b/drivers/net/can/sja1000/sja1000.c +@@ -84,6 +84,20 @@ static struct can_bittiming_const sja100 + .brp_inc = 1, + }; + ++static void sja1000_write_cmdreg(struct sja1000_priv *priv, u8 val) ++{ ++ unsigned long flags; ++ ++ /* ++ * The command register needs some locking and time to settle ++ * the write_reg() operation - especially on SMP systems. ++ */ ++ spin_lock_irqsave(&priv->cmdreg_lock, flags); ++ priv->write_reg(priv, REG_CMR, val); ++ priv->read_reg(priv, REG_SR); ++ spin_unlock_irqrestore(&priv->cmdreg_lock, flags); ++} ++ + static int sja1000_probe_chip(struct net_device *dev) + { + struct sja1000_priv *priv = netdev_priv(dev); +@@ -297,7 +311,7 @@ static netdev_tx_t sja1000_start_xmit(st + + can_put_echo_skb(skb, dev, 0); + +- priv->write_reg(priv, REG_CMR, CMD_TR); ++ sja1000_write_cmdreg(priv, CMD_TR); + + return NETDEV_TX_OK; + } +@@ -346,7 +360,7 @@ static void sja1000_rx(struct net_device + cf->can_id = id; + + /* release receive buffer */ +- priv->write_reg(priv, REG_CMR, CMD_RRB); ++ sja1000_write_cmdreg(priv, CMD_RRB); + + netif_rx(skb); + +@@ -374,7 +388,7 @@ static int sja1000_err(struct net_device + cf->data[1] = CAN_ERR_CRTL_RX_OVERFLOW; + stats->rx_over_errors++; + stats->rx_errors++; +- priv->write_reg(priv, REG_CMR, CMD_CDO); /* clear bit */ ++ sja1000_write_cmdreg(priv, CMD_CDO); /* clear bit */ + } + + if (isrc & IRQ_EI) { +--- a/drivers/net/can/sja1000/sja1000.h ++++ b/drivers/net/can/sja1000/sja1000.h +@@ -167,6 +167,7 @@ struct sja1000_priv { + + void __iomem *reg_base; /* ioremap'ed address to registers */ + unsigned long irq_flags; /* for request_irq() */ ++ spinlock_t cmdreg_lock; /* lock for concurrent cmd register writes */ + + u16 flags; /* custom mode flags */ + u8 ocr; /* output control register */ diff --git a/queue-2.6.34/drivers-base-cpu.c-fix-the-output-from-sys-devices-system-cpu-offline.patch b/queue-2.6.34/drivers-base-cpu.c-fix-the-output-from-sys-devices-system-cpu-offline.patch new file mode 100644 index 00000000000..9c977b72927 --- /dev/null +++ b/queue-2.6.34/drivers-base-cpu.c-fix-the-output-from-sys-devices-system-cpu-offline.patch @@ -0,0 +1,34 @@ +From cdc6e3d3968052cebb2f2ddcd742bff29fbd1a90 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Tue, 27 Apr 2010 14:01:20 -0700 +Subject: drivers/base/cpu.c: fix the output from /sys/devices/system/cpu/offline + +From: Jan Beulich + +commit cdc6e3d3968052cebb2f2ddcd742bff29fbd1a90 upstream. + +Without CONFIG_CPUMASK_OFFSTACK, simply inverting cpu_online_mask leads +to CPUs beyond nr_cpu_ids to be displayed twice and CPUs not even +possible to be displayed as offline. + +Signed-off-by: Jan Beulich +Cc: Andi Kleen +Cc: Stephen Rothwell +Signed-off-by: Andrew Morton +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/base/cpu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/base/cpu.c ++++ b/drivers/base/cpu.c +@@ -186,7 +186,7 @@ static ssize_t print_cpus_offline(struct + /* display offline cpus < nr_cpu_ids */ + if (!alloc_cpumask_var(&offline, GFP_KERNEL)) + return -ENOMEM; +- cpumask_complement(offline, cpu_online_mask); ++ cpumask_andnot(offline, cpu_possible_mask, cpu_online_mask); + n = cpulist_scnprintf(buf, len, offline); + free_cpumask_var(offline); + diff --git a/queue-2.6.34/drm-i915-reject-bind_to_gtt-early-if-object-aperture.patch b/queue-2.6.34/drm-i915-reject-bind_to_gtt-early-if-object-aperture.patch new file mode 100644 index 00000000000..b9f1113ab0e --- /dev/null +++ b/queue-2.6.34/drm-i915-reject-bind_to_gtt-early-if-object-aperture.patch @@ -0,0 +1,39 @@ +From 654fc6073f68efa3b6c466825749e73e7fbb92cd Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Thu, 27 May 2010 13:18:21 +0100 +Subject: drm/i915: Reject bind_to_gtt() early if object > aperture + +From: Chris Wilson + +commit 654fc6073f68efa3b6c466825749e73e7fbb92cd upstream. + +If the object is bigger than the entire aperture, reject it early +before evicting everything in a vain attempt to find space. + +v2: Use E2BIG as suggested by Owain G. Ainsworth. + +Signed-off-by: Chris Wilson +Signed-off-by: Eric Anholt +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_gem.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -2688,6 +2688,14 @@ i915_gem_object_bind_to_gtt(struct drm_g + return -EINVAL; + } + ++ /* If the object is bigger than the entire aperture, reject it early ++ * before evicting everything in a vain attempt to find space. ++ */ ++ if (obj->size > dev->gtt_total) { ++ DRM_ERROR("Attempting to bind an object larger than the aperture\n"); ++ return -E2BIG; ++ } ++ + search_free: + free_space = drm_mm_search_free(&dev_priv->mm.gtt_space, + obj->size, alignment, 0); diff --git a/queue-2.6.34/fbdev-section-cleanup-in-arcfb.patch b/queue-2.6.34/fbdev-section-cleanup-in-arcfb.patch new file mode 100644 index 00000000000..a17634f7fff --- /dev/null +++ b/queue-2.6.34/fbdev-section-cleanup-in-arcfb.patch @@ -0,0 +1,80 @@ +From bd9b5caf8616501d2ab6f17210b11f81ea7546eb Mon Sep 17 00:00:00 2001 +From: Henrik Kretzschmar +Date: Mon, 24 May 2010 14:33:54 -0700 +Subject: fbdev: section cleanup in arcfb +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Henrik Kretzschmar + +commit bd9b5caf8616501d2ab6f17210b11f81ea7546eb upstream. + +Fix the sections in the arcfb driver, by moving: + +* the variables arcfb_fix and arcfb_var from .init.data to .devinit.data + +* arcfb_remove() from .text to .devexit.text + +This fixes the following warnings issued by modpost: + +WARNING: drivers/video/built-in.o(.devinit.text+0x543): Section mismatch in reference from the function arcfb_probe() to the variable .init.data:arcfb_var +The function __devinit arcfb_probe() references +a variable __initdata arcfb_var. +If arcfb_var is only used by arcfb_probe then +annotate arcfb_var with a matching annotation. + +WARNING: drivers/video/built-in.o(.devinit.text+0x558): Section mismatch in reference from the function arcfb_probe() to the variable .init.data:arcfb_fix +The function __devinit arcfb_probe() references +a variable __initdata arcfb_fix. +If arcfb_fix is only used by arcfb_probe then +annotate arcfb_fix with a matching annotation. + +Signed-off-by: Henrik Kretzschmar +Acked-by: Uwe Kleine-König +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/arcfb.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/video/arcfb.c ++++ b/drivers/video/arcfb.c +@@ -80,7 +80,7 @@ struct arcfb_par { + spinlock_t lock; + }; + +-static struct fb_fix_screeninfo arcfb_fix __initdata = { ++static struct fb_fix_screeninfo arcfb_fix __devinitdata = { + .id = "arcfb", + .type = FB_TYPE_PACKED_PIXELS, + .visual = FB_VISUAL_MONO01, +@@ -90,7 +90,7 @@ static struct fb_fix_screeninfo arcfb_fi + .accel = FB_ACCEL_NONE, + }; + +-static struct fb_var_screeninfo arcfb_var __initdata = { ++static struct fb_var_screeninfo arcfb_var __devinitdata = { + .xres = 128, + .yres = 64, + .xres_virtual = 128, +@@ -588,7 +588,7 @@ err: + return retval; + } + +-static int arcfb_remove(struct platform_device *dev) ++static int __devexit arcfb_remove(struct platform_device *dev) + { + struct fb_info *info = platform_get_drvdata(dev); + +@@ -602,7 +602,7 @@ static int arcfb_remove(struct platform_ + + static struct platform_driver arcfb_driver = { + .probe = arcfb_probe, +- .remove = arcfb_remove, ++ .remove = __devexit_p(arcfb_remove), + .driver = { + .name = "arcfb", + }, diff --git a/queue-2.6.34/fbdev-section-cleanup-in-hgafb.patch b/queue-2.6.34/fbdev-section-cleanup-in-hgafb.patch new file mode 100644 index 00000000000..5a8e3bf7c66 --- /dev/null +++ b/queue-2.6.34/fbdev-section-cleanup-in-hgafb.patch @@ -0,0 +1,99 @@ +From e217e6e39f62e47f7e659b715235dbd57df480f8 Mon Sep 17 00:00:00 2001 +From: Henrik Kretzschmar +Date: Mon, 24 May 2010 14:33:56 -0700 +Subject: fbdev: section cleanup in hgafb +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Henrik Kretzschmar + +commit e217e6e39f62e47f7e659b715235dbd57df480f8 upstream. + +Fix up the sections in the hgafb driver, by + +* moving hga_default_var and hga_fix from .init.data to .devinit.data + +* moving hga_detect() from .init.text to .devinit.text + +* moving hga_fb_remove() from .text to .devexit.text + +This fixes the following warnings issued by modpost: + +WARNING: drivers/video/hgafb.o(.devinit.text+0x18): Section mismatch in referenc +e from the function hgafb_probe() to the function .init.text:hga_card_detect() +The function __devinit hgafb_probe() references +a function __init hga_card_detect(). +If hga_card_detect is only used by hgafb_probe then +annotate hga_card_detect with a matching annotation. + +WARNING: drivers/video/hgafb.o(.devinit.text+0xfe): Section mismatch in referenc +e from the function hgafb_probe() to the variable .init.data:hga_fix +The function __devinit hgafb_probe() references +a variable __initdata hga_fix. +If hga_fix is only used by hgafb_probe then +annotate hga_fix with a matching annotation. + +WARNING: drivers/video/hgafb.o(.devinit.text+0x105): Section mismatch in reference from the function hgafb_probe() to the variable .init.data:hga_default_var +The function __devinit hgafb_probe() references +a variable __initdata hga_default_var. +If hga_default_var is only used by hgafb_probe then +annotate hga_default_var with a matching annotation. + +Signed-off-by: Henrik Kretzschmar +Acked-by: Uwe Kleine-König +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/hgafb.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/video/hgafb.c ++++ b/drivers/video/hgafb.c +@@ -106,7 +106,7 @@ static DEFINE_SPINLOCK(hga_reg_lock); + + /* Framebuffer driver structures */ + +-static struct fb_var_screeninfo __initdata hga_default_var = { ++static struct fb_var_screeninfo hga_default_var __devinitdata = { + .xres = 720, + .yres = 348, + .xres_virtual = 720, +@@ -120,7 +120,7 @@ static struct fb_var_screeninfo __initda + .width = -1, + }; + +-static struct fb_fix_screeninfo __initdata hga_fix = { ++static struct fb_fix_screeninfo hga_fix __devinitdata = { + .id = "HGA", + .type = FB_TYPE_PACKED_PIXELS, /* (not sure) */ + .visual = FB_VISUAL_MONO10, +@@ -276,7 +276,7 @@ static void hga_blank(int blank_mode) + spin_unlock_irqrestore(&hga_reg_lock, flags); + } + +-static int __init hga_card_detect(void) ++static int __devinit hga_card_detect(void) + { + int count = 0; + void __iomem *p, *q; +@@ -596,7 +596,7 @@ static int __devinit hgafb_probe(struct + return 0; + } + +-static int hgafb_remove(struct platform_device *pdev) ++static int __devexit hgafb_remove(struct platform_device *pdev) + { + struct fb_info *info = platform_get_drvdata(pdev); + +@@ -621,7 +621,7 @@ static int hgafb_remove(struct platform_ + + static struct platform_driver hgafb_driver = { + .probe = hgafb_probe, +- .remove = hgafb_remove, ++ .remove = __devexit_p(hgafb_remove), + .driver = { + .name = "hgafb", + }, diff --git a/queue-2.6.34/fbdev-section-cleanup-in-vfb.patch b/queue-2.6.34/fbdev-section-cleanup-in-vfb.patch new file mode 100644 index 00000000000..e2629ffcd19 --- /dev/null +++ b/queue-2.6.34/fbdev-section-cleanup-in-vfb.patch @@ -0,0 +1,59 @@ +From 3cc04971661e37e7de6fbf9808ede554b5e1cb4e Mon Sep 17 00:00:00 2001 +From: Henrik Kretzschmar +Date: Mon, 24 May 2010 14:33:57 -0700 +Subject: fbdev: section cleanup in vfb +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Henrik Kretzschmar + +commit 3cc04971661e37e7de6fbf9808ede554b5e1cb4e upstream. + +Fix up the section in the vfb driver, by moving the variables vfb_default +and vfb_fix from .init.data to .devinit.data + +This fixes the following warnings issued by modpost: + +WARNING: drivers/video/vfb.o(.devinit.text+0xf8): Section mismatch in reference from the function vfb_probe() to the variable .init.data:vfb_default +The function __devinit vfb_probe() references +a variable __initdata vfb_default. +If vfb_default is only used by vfb_probe then +annotate vfb_default with a matching annotation. + +WARNING: drivers/video/vfb.o(.devinit.text+0x114): Section mismatch in reference from the function vfb_probe() to the variable .init.data:vfb_fix +The function __devinit vfb_probe() references +a variable __initdata vfb_fix. +If vfb_fix is only used by vfb_probe then +annotate vfb_fix with a matching annotation. + +Signed-off-by: Henrik Kretzschmar +Acked-by: Uwe Kleine-König +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/vfb.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/video/vfb.c ++++ b/drivers/video/vfb.c +@@ -78,7 +78,7 @@ static void rvfree(void *mem, unsigned l + vfree(mem); + } + +-static struct fb_var_screeninfo vfb_default __initdata = { ++static struct fb_var_screeninfo vfb_default __devinitdata = { + .xres = 640, + .yres = 480, + .xres_virtual = 640, +@@ -100,7 +100,7 @@ static struct fb_var_screeninfo vfb_defa + .vmode = FB_VMODE_NONINTERLACED, + }; + +-static struct fb_fix_screeninfo vfb_fix __initdata = { ++static struct fb_fix_screeninfo vfb_fix __devinitdata = { + .id = "Virtual FB", + .type = FB_TYPE_PACKED_PIXELS, + .visual = FB_VISUAL_PSEUDOCOLOR, diff --git a/queue-2.6.34/fbdev-section-cleanup-in-vga16fb.patch b/queue-2.6.34/fbdev-section-cleanup-in-vga16fb.patch new file mode 100644 index 00000000000..5346b56981c --- /dev/null +++ b/queue-2.6.34/fbdev-section-cleanup-in-vga16fb.patch @@ -0,0 +1,100 @@ +From ad1458464cbbe6935be6e20d70920301733158af Mon Sep 17 00:00:00 2001 +From: Henrik Kretzschmar +Date: Mon, 24 May 2010 14:33:59 -0700 +Subject: fbdev: section cleanup in vga16fb +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Henrik Kretzschmar + +commit ad1458464cbbe6935be6e20d70920301733158af upstream. + +Fix up the sections in the vga16fb driver, by moving: + +* the variables vga16_defined and vga16fb + from .init.data to .devinit.data + +* vga16fb_setup() from .text to .init.text + +* vga16fb_remove() from .text. to .devexit.text + +This fixes the following warnings issued by modpost: + +WARNING: drivers/video/built-in.o(.devinit.text+0x1a420): Section mismatch in re +ference from the function vga16fb_probe() to the (unknown reference) .init.data: +(unknown) +The function __devinit vga16fb_probe() references +a (unknown reference) __initdata (unknown). +If (unknown) is only used by vga16fb_probe then +annotate (unknown) with a matching annotation. + +WARNING: drivers/video/built-in.o(.devinit.text+0x1a437): Section mismatch in reference from the function vga16fb_probe() to the variable .init.data:vga16fb_defined +The function __devinit vga16fb_probe() references +a variable __initdata vga16fb_defined. +If vga16fb_defined is only used by vga16fb_probe then +annotate vga16fb_defined with a matching annotation. + +WARNING: drivers/video/built-in.o(.devinit.text+0x1a457): Section mismatch in reference from the function vga16fb_probe() to the variable .init.data:vga16fb_fix +The function __devinit vga16fb_probe() references +a variable __initdata vga16fb_fix. +If vga16fb_fix is only used by vga16fb_probe then +annotate vga16fb_fix with a matching annotation. + +Signed-off-by: Henrik Kretzschmar +Acked-by: Uwe Kleine-König +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/vga16fb.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/video/vga16fb.c ++++ b/drivers/video/vga16fb.c +@@ -65,7 +65,7 @@ struct vga16fb_par { + + /* --------------------------------------------------------------------- */ + +-static struct fb_var_screeninfo vga16fb_defined __initdata = { ++static struct fb_var_screeninfo vga16fb_defined __devinitdata = { + .xres = 640, + .yres = 480, + .xres_virtual = 640, +@@ -85,7 +85,7 @@ static struct fb_var_screeninfo vga16fb_ + }; + + /* name should not depend on EGA/VGA */ +-static struct fb_fix_screeninfo vga16fb_fix __initdata = { ++static struct fb_fix_screeninfo vga16fb_fix __devinitdata = { + .id = "VGA16 VGA", + .smem_start = VGA_FB_PHYS, + .smem_len = VGA_FB_PHYS_LEN, +@@ -1278,7 +1278,7 @@ static struct fb_ops vga16fb_ops = { + }; + + #ifndef MODULE +-static int vga16fb_setup(char *options) ++static int __init vga16fb_setup(char *options) + { + char *this_opt; + +@@ -1376,7 +1376,7 @@ static int __devinit vga16fb_probe(struc + return ret; + } + +-static int vga16fb_remove(struct platform_device *dev) ++static int __devexit vga16fb_remove(struct platform_device *dev) + { + struct fb_info *info = platform_get_drvdata(dev); + +@@ -1393,7 +1393,7 @@ static int vga16fb_remove(struct platfor + + static struct platform_driver vga16fb_driver = { + .probe = vga16fb_probe, +- .remove = vga16fb_remove, ++ .remove = __devexit_p(vga16fb_remove), + .driver = { + .name = "vga16fb", + }, diff --git a/queue-2.6.34/fbdev-section-cleanup-in-w100fb.patch b/queue-2.6.34/fbdev-section-cleanup-in-w100fb.patch new file mode 100644 index 00000000000..ca5a9c3d92d --- /dev/null +++ b/queue-2.6.34/fbdev-section-cleanup-in-w100fb.patch @@ -0,0 +1,77 @@ +From fb6cb3270af8f2ad3dd556906a9c52aa85754849 Mon Sep 17 00:00:00 2001 +From: Henrik Kretzschmar +Date: Mon, 24 May 2010 14:34:00 -0700 +Subject: fbdev: section cleanup in w100fb +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Henrik Kretzschmar + +commit fb6cb3270af8f2ad3dd556906a9c52aa85754849 upstream. + +Fix up the section in the w100fb driver, by moving: + +* w100fb_remove() from .text to .devexit.text + +* w100_get_xtal_table() from .text to .devinit.text + +* w100fb_init() from .devinit.text to .init.text + +Signed-off-by: Henrik Kretzschmar +Acked-by: Uwe Kleine-König +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/w100fb.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/video/w100fb.c ++++ b/drivers/video/w100fb.c +@@ -53,7 +53,7 @@ static void w100_update_enable(void); + static void w100_update_disable(void); + static void calc_hsync(struct w100fb_par *par); + static void w100_init_graphic_engine(struct w100fb_par *par); +-struct w100_pll_info *w100_get_xtal_table(unsigned int freq); ++struct w100_pll_info *w100_get_xtal_table(unsigned int freq) __devinit; + + /* Pseudo palette size */ + #define MAX_PALETTES 16 +@@ -782,7 +782,7 @@ out: + } + + +-static int w100fb_remove(struct platform_device *pdev) ++static int __devexit w100fb_remove(struct platform_device *pdev) + { + struct fb_info *info = platform_get_drvdata(pdev); + struct w100fb_par *par=info->par; +@@ -1020,7 +1020,7 @@ static struct pll_entries { + { 0 }, + }; + +-struct w100_pll_info *w100_get_xtal_table(unsigned int freq) ++struct w100_pll_info __devinit *w100_get_xtal_table(unsigned int freq) + { + struct pll_entries *pll_entry = w100_pll_tables; + +@@ -1611,7 +1611,7 @@ static void w100_vsync(void) + + static struct platform_driver w100fb_driver = { + .probe = w100fb_probe, +- .remove = w100fb_remove, ++ .remove = __devexit_p(w100fb_remove), + .suspend = w100fb_suspend, + .resume = w100fb_resume, + .driver = { +@@ -1619,7 +1619,7 @@ static struct platform_driver w100fb_dri + }, + }; + +-int __devinit w100fb_init(void) ++int __init w100fb_init(void) + { + return platform_driver_register(&w100fb_driver); + } diff --git a/queue-2.6.34/libsas-fix-deref-before-check-in-commit-70b25f890ce.patch b/queue-2.6.34/libsas-fix-deref-before-check-in-commit-70b25f890ce.patch new file mode 100644 index 00000000000..be147d0e2ba --- /dev/null +++ b/queue-2.6.34/libsas-fix-deref-before-check-in-commit-70b25f890ce.patch @@ -0,0 +1,79 @@ +From 1b4d0d8ea7b3cbd107f345ab766416f9b38ce66a Mon Sep 17 00:00:00 2001 +From: James Bottomley +Date: Thu, 13 May 2010 09:31:54 -0500 +Subject: [SCSI] libsas: fix deref before check in commit 70b25f890ce + +From: James Bottomley + +commit 1b4d0d8ea7b3cbd107f345ab766416f9b38ce66a upstream. + +commit 70b25f890ce9f0520c64075ce9225a5b020a513e +Author: Tejun Heo +Date: Thu Apr 15 09:00:08 2010 +0900 + + [SCSI] fix locking around blk_abort_request() + +Introduced a reference before check problem, fix this by moving the +lock shorthand code to be right at the point of actual use. + +Reported-by: Dan Carpenter +Acked-by: Tejun Heo +Signed-off-by: James Bottomley +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/libsas/sas_ata.c | 5 +++-- + drivers/scsi/libsas/sas_scsi_host.c | 16 ++++++++-------- + 2 files changed, 11 insertions(+), 10 deletions(-) + +--- a/drivers/scsi/libsas/sas_ata.c ++++ b/drivers/scsi/libsas/sas_ata.c +@@ -395,12 +395,13 @@ int sas_ata_init_host_and_port(struct do + void sas_ata_task_abort(struct sas_task *task) + { + struct ata_queued_cmd *qc = task->uldd_task; +- struct request_queue *q = qc->scsicmd->device->request_queue; + struct completion *waiting; +- unsigned long flags; + + /* Bounce SCSI-initiated commands to the SCSI EH */ + if (qc->scsicmd) { ++ struct request_queue *q = qc->scsicmd->device->request_queue; ++ unsigned long flags; ++ + spin_lock_irqsave(q->queue_lock, flags); + blk_abort_request(qc->scsicmd->request); + spin_unlock_irqrestore(q->queue_lock, flags); +--- a/drivers/scsi/libsas/sas_scsi_host.c ++++ b/drivers/scsi/libsas/sas_scsi_host.c +@@ -1030,8 +1030,6 @@ int __sas_task_abort(struct sas_task *ta + void sas_task_abort(struct sas_task *task) + { + struct scsi_cmnd *sc = task->uldd_task; +- struct request_queue *q = sc->device->request_queue; +- unsigned long flags; + + /* Escape for libsas internal commands */ + if (!sc) { +@@ -1043,13 +1041,15 @@ void sas_task_abort(struct sas_task *tas + + if (dev_is_sata(task->dev)) { + sas_ata_task_abort(task); +- return; +- } ++ } else { ++ struct request_queue *q = sc->device->request_queue; ++ unsigned long flags; + +- spin_lock_irqsave(q->queue_lock, flags); +- blk_abort_request(sc->request); +- spin_unlock_irqrestore(q->queue_lock, flags); +- scsi_schedule_eh(sc->device->host); ++ spin_lock_irqsave(q->queue_lock, flags); ++ blk_abort_request(sc->request); ++ spin_unlock_irqrestore(q->queue_lock, flags); ++ scsi_schedule_eh(sc->device->host); ++ } + } + + int sas_slave_alloc(struct scsi_device *scsi_dev) diff --git a/queue-2.6.34/mac80211-fix-handling-of-4-address-mode-in-ieee80211_change_iface.patch b/queue-2.6.34/mac80211-fix-handling-of-4-address-mode-in-ieee80211_change_iface.patch new file mode 100644 index 00000000000..f8c192510cd --- /dev/null +++ b/queue-2.6.34/mac80211-fix-handling-of-4-address-mode-in-ieee80211_change_iface.patch @@ -0,0 +1,44 @@ +From f7917af92024d43bc20bc1afc92de27b0bd0f50b Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Tue, 27 Apr 2010 00:26:34 +0200 +Subject: mac80211: fix handling of 4-address-mode in ieee80211_change_iface + +From: Felix Fietkau + +commit f7917af92024d43bc20bc1afc92de27b0bd0f50b upstream. + +A misplaced interface type check bails out too early if the interface +is not in monitor mode. This patch moves it to the right place, so that +it only covers changes to the monitor flags. + +Signed-off-by: Felix Fietkau +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/cfg.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/net/mac80211/cfg.c ++++ b/net/mac80211/cfg.c +@@ -97,9 +97,6 @@ static int ieee80211_change_iface(struct + params->mesh_id_len, + params->mesh_id); + +- if (sdata->vif.type != NL80211_IFTYPE_MONITOR || !flags) +- return 0; +- + if (type == NL80211_IFTYPE_AP_VLAN && + params && params->use_4addr == 0) + rcu_assign_pointer(sdata->u.vlan.sta, NULL); +@@ -107,7 +104,9 @@ static int ieee80211_change_iface(struct + params && params->use_4addr >= 0) + sdata->u.mgd.use_4addr = params->use_4addr; + +- sdata->u.mntr_flags = *flags; ++ if (sdata->vif.type == NL80211_IFTYPE_MONITOR && flags) ++ sdata->u.mntr_flags = *flags; ++ + return 0; + } + diff --git a/queue-2.6.34/mac80211-fix-robust-management-frame-handling-mfp.patch b/queue-2.6.34/mac80211-fix-robust-management-frame-handling-mfp.patch new file mode 100644 index 00000000000..4bb02378032 --- /dev/null +++ b/queue-2.6.34/mac80211-fix-robust-management-frame-handling-mfp.patch @@ -0,0 +1,35 @@ +From d211e90e28a074447584729018a39910d691d1a8 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 28 Mar 2010 22:29:52 -0700 +Subject: mac80211: Fix robust management frame handling (MFP) + +From: Jouni Malinen + +commit d211e90e28a074447584729018a39910d691d1a8 upstream. + +Commit e34e09401ee9888dd662b2fca5d607794a56daf2 incorrectly removed +use of ieee80211_has_protected() from the management frame case and in +practice, made this validation drop all Action frames when MFP is +enabled. This should have only been done for frames with Protected +field set to zero. + +Signed-off-by: Jouni Malinen +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/rx.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/net/mac80211/rx.c ++++ b/net/mac80211/rx.c +@@ -1414,7 +1414,8 @@ ieee80211_drop_unencrypted_mgmt(struct i + return res; + + if (rx->sta && test_sta_flags(rx->sta, WLAN_STA_MFP)) { +- if (unlikely(ieee80211_is_unicast_robust_mgmt_frame(rx->skb) && ++ if (unlikely(!ieee80211_has_protected(fc) && ++ ieee80211_is_unicast_robust_mgmt_frame(rx->skb) && + rx->key)) + return -EACCES; + /* BIP does not use Protected field, so need to check MMIE */ diff --git a/queue-2.6.34/mac80211-fix-rts-threshold-check.patch b/queue-2.6.34/mac80211-fix-rts-threshold-check.patch new file mode 100644 index 00000000000..2ffde2bf08a --- /dev/null +++ b/queue-2.6.34/mac80211-fix-rts-threshold-check.patch @@ -0,0 +1,52 @@ +From a2c40249a36d0b4d76d1caf6bf806e4ae5b06e8a Mon Sep 17 00:00:00 2001 +From: Shanyu Zhao +Date: Tue, 27 Apr 2010 11:15:12 -0700 +Subject: mac80211: fix rts threshold check + +From: Shanyu Zhao + +commit a2c40249a36d0b4d76d1caf6bf806e4ae5b06e8a upstream. + +Currently whenever rts thresold is set, every packet will use RTS +protection no matter its size exceeds the threshold or not. This is +due to a bug in the rts threshold check. + if (len > tx->local->hw.wiphy->rts_threshold) { + txrc.rts = rts = true; + } +Basically it is comparing an int (len) and a u32 (rts_threshold), +and the variable len is assigned as: + len = min_t(int, tx->skb->len + FCS_LEN, + tx->local->hw.wiphy->frag_threshold); +However, when frag_threshold is "-1", len is always "-1", which is +0xffffffff therefore rts is always set to true. + +Signed-off-by: Shanyu Zhao +Reviewed-by: Johannes Berg +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/tx.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/net/mac80211/tx.c ++++ b/net/mac80211/tx.c +@@ -584,7 +584,8 @@ ieee80211_tx_h_rate_ctrl(struct ieee8021 + struct ieee80211_hdr *hdr = (void *)tx->skb->data; + struct ieee80211_supported_band *sband; + struct ieee80211_rate *rate; +- int i, len; ++ int i; ++ u32 len; + bool inval = false, rts = false, short_preamble = false; + struct ieee80211_tx_rate_control txrc; + u32 sta_flags; +@@ -593,7 +594,7 @@ ieee80211_tx_h_rate_ctrl(struct ieee8021 + + sband = tx->local->hw.wiphy->bands[tx->channel->band]; + +- len = min_t(int, tx->skb->len + FCS_LEN, ++ len = min_t(u32, tx->skb->len + FCS_LEN, + tx->local->hw.wiphy->frag_threshold); + + /* set up the tx rate control struct we give the RC algo */ diff --git a/queue-2.6.34/mac80211-give-warning-if-building-w-out-rate-ctrl-algorithm.patch b/queue-2.6.34/mac80211-give-warning-if-building-w-out-rate-ctrl-algorithm.patch new file mode 100644 index 00000000000..1c3ffc16f27 --- /dev/null +++ b/queue-2.6.34/mac80211-give-warning-if-building-w-out-rate-ctrl-algorithm.patch @@ -0,0 +1,68 @@ +From c2ef355bf3ef0b8006b96128726684fba47ac928 Mon Sep 17 00:00:00 2001 +From: Andres Salomon +Date: Thu, 25 Feb 2010 19:18:47 -0500 +Subject: mac80211: give warning if building w/out rate ctrl algorithm + +From: Andres Salomon + +commit c2ef355bf3ef0b8006b96128726684fba47ac928 upstream. + +I discovered that if EMBEDDED=y, one can accidentally build a mac80211 stack +and drivers w/ no rate control algorithm. For drivers like RTL8187 that don't +supply their own RC algorithms, this will cause ieee80211_register_hw to +fail (making the driver unusable). + +This will tell kconfig to provide a warning if no rate control algorithms +have been selected. That'll at least warn the user; users that know that +their drivers supply a rate control algorithm can safely ignore the +warning, and those who don't know (or who expect to be using multiple +drivers) can select a default RC algorithm. + +Signed-off-by: Andres Salomon +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/Kconfig | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/net/mac80211/Kconfig ++++ b/net/mac80211/Kconfig +@@ -15,8 +15,12 @@ comment "CFG80211 needs to be enabled fo + + if MAC80211 != n + ++config MAC80211_HAS_RC ++ def_bool n ++ + config MAC80211_RC_PID + bool "PID controller based rate control algorithm" if EMBEDDED ++ select MAC80211_HAS_RC + ---help--- + This option enables a TX rate control algorithm for + mac80211 that uses a PID controller to select the TX +@@ -24,12 +28,14 @@ config MAC80211_RC_PID + + config MAC80211_RC_MINSTREL + bool "Minstrel" if EMBEDDED ++ select MAC80211_HAS_RC + default y + ---help--- + This option enables the 'minstrel' TX rate control algorithm + + choice + prompt "Default rate control algorithm" ++ depends on MAC80211_HAS_RC + default MAC80211_RC_DEFAULT_MINSTREL + ---help--- + This option selects the default rate control algorithm +@@ -62,6 +68,9 @@ config MAC80211_RC_DEFAULT + + endif + ++comment "Some wireless drivers require a rate control algorithm" ++ depends on MAC80211_HAS_RC=n ++ + config MAC80211_MESH + bool "Enable mac80211 mesh networking (pre-802.11s) support" + depends on MAC80211 && EXPERIMENTAL diff --git a/queue-2.6.34/pci-disable-msi-for-mcp55-on-p5n32-e-sli.patch b/queue-2.6.34/pci-disable-msi-for-mcp55-on-p5n32-e-sli.patch new file mode 100644 index 00000000000..a0a05854707 --- /dev/null +++ b/queue-2.6.34/pci-disable-msi-for-mcp55-on-p5n32-e-sli.patch @@ -0,0 +1,44 @@ +From e4146bb9088c01c8b6e82be11f0c371f8aff023c Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sun, 16 May 2010 02:28:49 +0100 +Subject: PCI: Disable MSI for MCP55 on P5N32-E SLI + +From: Ben Hutchings + +commit e4146bb9088c01c8b6e82be11f0c371f8aff023c upstream. + +As reported in , MSI appears to be +broken for this on-board device. We already have a quirk for the +P5N32-SLI Premium; extend it to cover both variants of the board. + +Reported-by: Romain DEGEZ +Signed-off-by: Ben Hutchings +Signed-off-by: Jesse Barnes +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/quirks.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -2219,15 +2219,16 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, + ht_enable_msi_mapping); + +-/* The P5N32-SLI Premium motherboard from Asus has a problem with msi ++/* The P5N32-SLI motherboards from Asus have a problem with msi + * for the MCP55 NIC. It is not yet determined whether the msi problem + * also affects other devices. As for now, turn off msi for this device. + */ + static void __devinit nvenet_msi_disable(struct pci_dev *dev) + { +- if (dmi_name_in_vendors("P5N32-SLI PREMIUM")) { ++ if (dmi_name_in_vendors("P5N32-SLI PREMIUM") || ++ dmi_name_in_vendors("P5N32-E SLI")) { + dev_info(&dev->dev, +- "Disabling msi for MCP55 NIC on P5N32-SLI Premium\n"); ++ "Disabling msi for MCP55 NIC on P5N32-SLI\n"); + dev->no_msi = 1; + } + } diff --git a/queue-2.6.34/pci-quirks-disable-msi-on-amd-rs4xx-internal-gfx-bridges.patch b/queue-2.6.34/pci-quirks-disable-msi-on-amd-rs4xx-internal-gfx-bridges.patch new file mode 100644 index 00000000000..ba7561a9328 --- /dev/null +++ b/queue-2.6.34/pci-quirks-disable-msi-on-amd-rs4xx-internal-gfx-bridges.patch @@ -0,0 +1,30 @@ +From 9313ff450400e6a2ab10fe6b9bdb12a828329410 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Tue, 18 May 2010 10:42:53 -0400 +Subject: PCI quirks: disable msi on AMD rs4xx internal gfx bridges + +From: Alex Deucher + +commit 9313ff450400e6a2ab10fe6b9bdb12a828329410 upstream. + +Doesn't work reliably for internal gfx. Fixes kernel bug +https://bugzilla.kernel.org/show_bug.cgi?id=15626. + +Signed-off-by: Alex Deucher +Signed-off-by: Jesse Barnes +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/quirks.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -2127,6 +2127,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AM + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASUSTEK, 0x9602, quirk_disable_msi); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AI, 0x9602, quirk_disable_msi); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, 0xa238, quirk_disable_msi); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x5a3f, quirk_disable_msi); + + /* Go through the list of Hypertransport capabilities and + * return 1 if a HT MSI capability is found and enabled */ diff --git a/queue-2.6.34/series b/queue-2.6.34/series index b9d7d37e5ab..0f175113a4b 100644 --- a/queue-2.6.34/series +++ b/queue-2.6.34/series @@ -52,3 +52,20 @@ usb-xhci-fix-issue-with-set-interface-after-stall.patch usb-xhci-limit-bus-sg_tablesize-to-62-trbs.patch usb-xhci-fix-check-for-room-on-the-ring.patch usb-xhci-fix-wrong-usage-of-macro-trb_type.patch +ath5k-consistently-use-rx_bufsize-for-rx-dma.patch +fbdev-section-cleanup-in-hgafb.patch +fbdev-section-cleanup-in-vfb.patch +fbdev-section-cleanup-in-vga16fb.patch +fbdev-section-cleanup-in-arcfb.patch +fbdev-section-cleanup-in-w100fb.patch +mac80211-give-warning-if-building-w-out-rate-ctrl-algorithm.patch +mac80211-fix-robust-management-frame-handling-mfp.patch +mac80211-fix-rts-threshold-check.patch +mac80211-fix-handling-of-4-address-mode-in-ieee80211_change_iface.patch +ath9k_hw-fix-hardware-deinit.patch +drm-i915-reject-bind_to_gtt-early-if-object-aperture.patch +libsas-fix-deref-before-check-in-commit-70b25f890ce.patch +drivers-base-cpu.c-fix-the-output-from-sys-devices-system-cpu-offline.patch +can-fix-sja1000-command-register-writes-on-smp-systems.patch +pci-quirks-disable-msi-on-amd-rs4xx-internal-gfx-bridges.patch +pci-disable-msi-for-mcp55-on-p5n32-e-sli.patch