]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 May 2013 03:00:20 +0000 (20:00 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 May 2013 03:00:20 +0000 (20:00 -0700)
added patches:
arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch
arm-at91-fix-typo-in-restart-code-panic-message.patch
arm-at91-remove-partial-parameter-in-bootargs-for.patch
arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch
arm-at91-trivial-typos-in-compatible-property.patch
arm-omap3-cpuidle-enable-time-keeping.patch
arm-u300-fix-ages-old-copy-paste-bug.patch
iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch
iwlwifi-fix-freeing-uninitialized-pointer.patch
mac80211-fix-station-entry-leak-warning-while-suspending.patch
mac80211-use-synchronize_rcu-with-rcu_barrier.patch
mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch
mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch
powerpc-add-isync-to-copy_and_flush.patch
powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch
powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch
powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch
staging-zsmalloc-fix-link-error-on-arm.patch

19 files changed:
queue-3.9/arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch [new file with mode: 0644]
queue-3.9/arm-at91-fix-typo-in-restart-code-panic-message.patch [new file with mode: 0644]
queue-3.9/arm-at91-remove-partial-parameter-in-bootargs-for.patch [new file with mode: 0644]
queue-3.9/arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch [new file with mode: 0644]
queue-3.9/arm-at91-trivial-typos-in-compatible-property.patch [new file with mode: 0644]
queue-3.9/arm-omap3-cpuidle-enable-time-keeping.patch [new file with mode: 0644]
queue-3.9/arm-u300-fix-ages-old-copy-paste-bug.patch [new file with mode: 0644]
queue-3.9/iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch [new file with mode: 0644]
queue-3.9/iwlwifi-fix-freeing-uninitialized-pointer.patch [new file with mode: 0644]
queue-3.9/mac80211-fix-station-entry-leak-warning-while-suspending.patch [new file with mode: 0644]
queue-3.9/mac80211-use-synchronize_rcu-with-rcu_barrier.patch [new file with mode: 0644]
queue-3.9/mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch [new file with mode: 0644]
queue-3.9/mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch [new file with mode: 0644]
queue-3.9/powerpc-add-isync-to-copy_and_flush.patch [new file with mode: 0644]
queue-3.9/powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch [new file with mode: 0644]
queue-3.9/powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch [new file with mode: 0644]
queue-3.9/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch [new file with mode: 0644]
queue-3.9/series
queue-3.9/staging-zsmalloc-fix-link-error-on-arm.patch [new file with mode: 0644]

diff --git a/queue-3.9/arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch b/queue-3.9/arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch
new file mode 100644 (file)
index 0000000..ada5024
--- /dev/null
@@ -0,0 +1,65 @@
+From f10491fff07dcced77f8ab1b3bc1f8e18715bfb9 Mon Sep 17 00:00:00 2001
+From: Douglas Gilbert <dgilbert@interlog.com>
+Date: Thu, 4 Apr 2013 18:19:55 +0200
+Subject: ARM: at91/at91sam9260.dtsi: fix u(s)art pinctrl encoding
+
+From: Douglas Gilbert <dgilbert@interlog.com>
+
+commit f10491fff07dcced77f8ab1b3bc1f8e18715bfb9 upstream.
+
+Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
+[nicolas.ferre@atmel.com: fix rts/cts for usart3]
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/dts/at91sam9260.dtsi |   16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+--- a/arch/arm/boot/dts/at91sam9260.dtsi
++++ b/arch/arm/boot/dts/at91sam9260.dtsi
+@@ -158,8 +158,8 @@
+                               usart1 {
+                                       pinctrl_usart1: usart1-0 {
+                                               atmel,pins =
+-                                                      <2 6 0x1 0x1    /* PB6 periph A with pullup */
+-                                                       2 7 0x1 0x0>;  /* PB7 periph A */
++                                                      <1 6 0x1 0x1    /* PB6 periph A with pullup */
++                                                       1 7 0x1 0x0>;  /* PB7 periph A */
+                                       };
+                                       pinctrl_usart1_rts: usart1_rts-0 {
+@@ -194,18 +194,18 @@
+                               usart3 {
+                                       pinctrl_usart3: usart3-0 {
+                                               atmel,pins =
+-                                                      <2 10 0x1 0x1   /* PB10 periph A with pullup */
+-                                                       2 11 0x1 0x0>; /* PB11 periph A */
++                                                      <1 10 0x1 0x1   /* PB10 periph A with pullup */
++                                                       1 11 0x1 0x0>; /* PB11 periph A */
+                                       };
+                                       pinctrl_usart3_rts: usart3_rts-0 {
+                                               atmel,pins =
+-                                                      <3 8 0x2 0x0>;  /* PB8 periph B */
++                                                      <2 8 0x2 0x0>;  /* PC8 periph B */
+                                       };
+                                       pinctrl_usart3_cts: usart3_cts-0 {
+                                               atmel,pins =
+-                                                      <3 10 0x2 0x0>; /* PB10 periph B */
++                                                      <2 10 0x2 0x0>; /* PC10 periph B */
+                                       };
+                               };
+@@ -220,8 +220,8 @@
+                               uart1 {
+                                       pinctrl_uart1: uart1-0 {
+                                               atmel,pins =
+-                                                      <2 12 0x1 0x1   /* PB12 periph A with pullup */
+-                                                       2 13 0x1 0x0>; /* PB13 periph A */
++                                                      <1 12 0x1 0x1   /* PB12 periph A with pullup */
++                                                       1 13 0x1 0x0>; /* PB13 periph A */
+                                       };
+                               };
diff --git a/queue-3.9/arm-at91-fix-typo-in-restart-code-panic-message.patch b/queue-3.9/arm-at91-fix-typo-in-restart-code-panic-message.patch
new file mode 100644 (file)
index 0000000..003fcfa
--- /dev/null
@@ -0,0 +1,29 @@
+From e7619459d47a673af3433208a42f583af920e9db Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime.ripard@free-electrons.com>
+Date: Sat, 23 Mar 2013 10:58:57 +0100
+Subject: ARM: at91: Fix typo in restart code panic message
+
+From: Maxime Ripard <maxime.ripard@free-electrons.com>
+
+commit e7619459d47a673af3433208a42f583af920e9db upstream.
+
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-at91/setup.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/mach-at91/setup.c
++++ b/arch/arm/mach-at91/setup.c
+@@ -333,7 +333,7 @@ static void at91_dt_rstc(void)
+       of_id = of_match_node(rstc_ids, np);
+       if (!of_id)
+-              panic("AT91: rtsc no restart function availlable\n");
++              panic("AT91: rtsc no restart function available\n");
+       arm_pm_restart = of_id->data;
diff --git a/queue-3.9/arm-at91-remove-partial-parameter-in-bootargs-for.patch b/queue-3.9/arm-at91-remove-partial-parameter-in-bootargs-for.patch
new file mode 100644 (file)
index 0000000..a5b5977
--- /dev/null
@@ -0,0 +1,31 @@
+From b090e5f68c0353534880b95ea0df56b8c0230b8c Mon Sep 17 00:00:00 2001
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+Date: Fri, 22 Mar 2013 12:32:09 +0100
+Subject: ARM: at91: remove partial parameter in bootargs for
+ at91sam9x5ek.dtsi
+
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+
+commit b090e5f68c0353534880b95ea0df56b8c0230b8c upstream.
+
+Remove the malformed "mem=" bootargs parameter in at91sam9x5ek.dtsi
+
+Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/dts/at91sam9x5ek.dtsi |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/at91sam9x5ek.dtsi
++++ b/arch/arm/boot/dts/at91sam9x5ek.dtsi
+@@ -13,7 +13,7 @@
+       compatible = "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
+       chosen {
+-              bootargs = "128M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
++              bootargs = "console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
+       };
+       ahb {
diff --git a/queue-3.9/arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch b/queue-3.9/arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch
new file mode 100644 (file)
index 0000000..fd6190d
--- /dev/null
@@ -0,0 +1,27 @@
+From 88fcb59a06556bf10eac97d7abb913cccea2c830 Mon Sep 17 00:00:00 2001
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+Date: Wed, 20 Feb 2013 17:32:20 +0100
+Subject: ARM: at91/trivial: fix model name for SAM9G15-EK
+
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+
+commit 88fcb59a06556bf10eac97d7abb913cccea2c830 upstream.
+
+Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/dts/at91sam9g15ek.dts |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/at91sam9g15ek.dts
++++ b/arch/arm/boot/dts/at91sam9g15ek.dts
+@@ -11,6 +11,6 @@
+ /include/ "at91sam9x5ek.dtsi"
+ / {
+-      model = "Atmel AT91SAM9G25-EK";
++      model = "Atmel AT91SAM9G15-EK";
+       compatible = "atmel,at91sam9g15ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
+ };
diff --git a/queue-3.9/arm-at91-trivial-typos-in-compatible-property.patch b/queue-3.9/arm-at91-trivial-typos-in-compatible-property.patch
new file mode 100644 (file)
index 0000000..8940243
--- /dev/null
@@ -0,0 +1,79 @@
+From 2a5a461f179509142c661d79f878855798b85201 Mon Sep 17 00:00:00 2001
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+Date: Thu, 21 Mar 2013 18:01:42 +0100
+Subject: ARM: at91/trivial: typos in compatible property
+
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+
+commit 2a5a461f179509142c661d79f878855798b85201 upstream.
+
+- unneeded whitespace
+- missing double quote
+
+Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/dts/at91sam9g15.dtsi |    2 +-
+ arch/arm/boot/dts/at91sam9g25.dtsi |    2 +-
+ arch/arm/boot/dts/at91sam9g35.dtsi |    2 +-
+ arch/arm/boot/dts/at91sam9x25.dtsi |    2 +-
+ arch/arm/boot/dts/at91sam9x35.dtsi |    2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+--- a/arch/arm/boot/dts/at91sam9g15.dtsi
++++ b/arch/arm/boot/dts/at91sam9g15.dtsi
+@@ -10,7 +10,7 @@
+ / {
+       model = "Atmel AT91SAM9G15 SoC";
+-      compatible = "atmel, at91sam9g15, atmel,at91sam9x5";
++      compatible = "atmel,at91sam9g15", "atmel,at91sam9x5";
+       ahb {
+               apb {
+--- a/arch/arm/boot/dts/at91sam9g25.dtsi
++++ b/arch/arm/boot/dts/at91sam9g25.dtsi
+@@ -10,7 +10,7 @@
+ / {
+       model = "Atmel AT91SAM9G25 SoC";
+-      compatible = "atmel, at91sam9g25, atmel,at91sam9x5";
++      compatible = "atmel,at91sam9g25", "atmel,at91sam9x5";
+       ahb {
+               apb {
+--- a/arch/arm/boot/dts/at91sam9g35.dtsi
++++ b/arch/arm/boot/dts/at91sam9g35.dtsi
+@@ -10,7 +10,7 @@
+ / {
+       model = "Atmel AT91SAM9G35 SoC";
+-      compatible = "atmel, at91sam9g35, atmel,at91sam9x5";
++      compatible = "atmel,at91sam9g35", "atmel,at91sam9x5";
+       ahb {
+               apb {
+--- a/arch/arm/boot/dts/at91sam9x25.dtsi
++++ b/arch/arm/boot/dts/at91sam9x25.dtsi
+@@ -10,7 +10,7 @@
+ / {
+       model = "Atmel AT91SAM9X25 SoC";
+-      compatible = "atmel, at91sam9x25, atmel,at91sam9x5";
++      compatible = "atmel,at91sam9x25", "atmel,at91sam9x5";
+       ahb {
+               apb {
+--- a/arch/arm/boot/dts/at91sam9x35.dtsi
++++ b/arch/arm/boot/dts/at91sam9x35.dtsi
+@@ -10,7 +10,7 @@
+ / {
+       model = "Atmel AT91SAM9X35 SoC";
+-      compatible = "atmel, at91sam9x35, atmel,at91sam9x5";
++      compatible = "atmel,at91sam9x35", "atmel,at91sam9x5";
+       ahb {
+               apb {
diff --git a/queue-3.9/arm-omap3-cpuidle-enable-time-keeping.patch b/queue-3.9/arm-omap3-cpuidle-enable-time-keeping.patch
new file mode 100644 (file)
index 0000000..c34e87c
--- /dev/null
@@ -0,0 +1,38 @@
+From 0d97558901c446a989de202a5d9ae94ec53644e5 Mon Sep 17 00:00:00 2001
+From: Daniel Lezcano <daniel.lezcano@linaro.org>
+Date: Fri, 29 Mar 2013 11:31:35 +0100
+Subject: ARM: omap3: cpuidle: enable time keeping
+
+From: Daniel Lezcano <daniel.lezcano@linaro.org>
+
+commit 0d97558901c446a989de202a5d9ae94ec53644e5 upstream.
+
+The TIME_VALID flag is specified for the different states but
+the time residency computation is not done, no tk flag, no time
+computation in the idle function.
+
+Set the en_core_tk_irqen flag to activate it.
+
+Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
+Signed-off-by: Kevin Hilman <khilman@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-omap2/cpuidle34xx.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mach-omap2/cpuidle34xx.c
++++ b/arch/arm/mach-omap2/cpuidle34xx.c
+@@ -274,8 +274,9 @@ static int omap3_enter_idle_bm(struct cp
+ static DEFINE_PER_CPU(struct cpuidle_device, omap3_idle_dev);
+ static struct cpuidle_driver omap3_idle_driver = {
+-      .name =         "omap3_idle",
+-      .owner =        THIS_MODULE,
++      .name             = "omap3_idle",
++      .owner            = THIS_MODULE,
++      .en_core_tk_irqen = 1,
+       .states = {
+               {
+                       .enter            = omap3_enter_idle_bm,
diff --git a/queue-3.9/arm-u300-fix-ages-old-copy-paste-bug.patch b/queue-3.9/arm-u300-fix-ages-old-copy-paste-bug.patch
new file mode 100644 (file)
index 0000000..1b025cc
--- /dev/null
@@ -0,0 +1,31 @@
+From 0259d9eb30d003af305626db2d8332805696e60d Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Fri, 26 Apr 2013 15:29:55 +0200
+Subject: ARM: u300: fix ages old copy/paste bug
+
+From: Linus Walleij <linus.walleij@linaro.org>
+
+commit 0259d9eb30d003af305626db2d8332805696e60d upstream.
+
+The UART1 is on the fast AHB bridge, not on the slow bus.
+
+Acked-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Olof Johansson <olof@lixom.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-u300/include/mach/u300-regs.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/mach-u300/include/mach/u300-regs.h
++++ b/arch/arm/mach-u300/include/mach/u300-regs.h
+@@ -95,7 +95,7 @@
+ #define U300_SPI_BASE                 (U300_FAST_PER_PHYS_BASE+0x6000)
+ /* Fast UART1 on U335 only */
+-#define U300_UART1_BASE                       (U300_SLOW_PER_PHYS_BASE+0x7000)
++#define U300_UART1_BASE                       (U300_FAST_PER_PHYS_BASE+0x7000)
+ /*
+  * SLOW peripherals
diff --git a/queue-3.9/iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch b/queue-3.9/iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch
new file mode 100644 (file)
index 0000000..1f9ad64
--- /dev/null
@@ -0,0 +1,46 @@
+From 63b77bf489881747c5118476918cc8c29378ee63 Mon Sep 17 00:00:00 2001
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Date: Wed, 17 Apr 2013 09:47:00 +0300
+Subject: iwlwifi: dvm: don't send zeroed LQ cmd
+
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+
+commit 63b77bf489881747c5118476918cc8c29378ee63 upstream.
+
+When the stations are being restored because of unassoc
+RXON, the LQ cmd may not have been initialized because it
+is initialized only after association.
+Sending zeroed LQ_CMD makes the fw unhappy: it raises
+SYSASSERT_2078.
+
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Reviewed-by: Johannes Berg <johannes.berg@intel.com>
+[move zero_lq and make static const]
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/dvm/sta.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/iwlwifi/dvm/sta.c
++++ b/drivers/net/wireless/iwlwifi/dvm/sta.c
+@@ -695,6 +695,7 @@ void iwl_clear_ucode_stations(struct iwl
+ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
+ {
+       struct iwl_addsta_cmd sta_cmd;
++      static const struct iwl_link_quality_cmd zero_lq = {};
+       struct iwl_link_quality_cmd lq;
+       int i;
+       bool found = false;
+@@ -733,7 +734,9 @@ void iwl_restore_stations(struct iwl_pri
+                               else
+                                       memcpy(&lq, priv->stations[i].lq,
+                                              sizeof(struct iwl_link_quality_cmd));
+-                              send_lq = true;
++
++                              if (!memcmp(&lq, &zero_lq, sizeof(lq)))
++                                      send_lq = true;
+                       }
+                       spin_unlock_bh(&priv->sta_lock);
+                       ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
diff --git a/queue-3.9/iwlwifi-fix-freeing-uninitialized-pointer.patch b/queue-3.9/iwlwifi-fix-freeing-uninitialized-pointer.patch
new file mode 100644 (file)
index 0000000..028a956
--- /dev/null
@@ -0,0 +1,52 @@
+From 3309ccf7fcebceef540ebe90c65d2f94d745a45b Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Tue, 16 Apr 2013 15:38:29 +0200
+Subject: iwlwifi: fix freeing uninitialized pointer
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit 3309ccf7fcebceef540ebe90c65d2f94d745a45b upstream.
+
+If on iwl_dump_nic_event_log() error occurs before that function
+initialize buf, we process uninitiated pointer in
+iwl_dbgfs_log_event_read() and can hit "BUG at mm/slub.c:3409"
+
+Resolves:
+https://bugzilla.redhat.com/show_bug.cgi?id=951241
+
+Reported-by: ian.odette@eprize.com
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/dvm/debugfs.c |   16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+--- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
++++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
+@@ -2237,15 +2237,15 @@ static ssize_t iwl_dbgfs_log_event_read(
+                                        size_t count, loff_t *ppos)
+ {
+       struct iwl_priv *priv = file->private_data;
+-      char *buf;
+-      int pos = 0;
+-      ssize_t ret = -ENOMEM;
++      char *buf = NULL;
++      ssize_t ret;
+-      ret = pos = iwl_dump_nic_event_log(priv, true, &buf, true);
+-      if (buf) {
+-              ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
+-              kfree(buf);
+-      }
++      ret = iwl_dump_nic_event_log(priv, true, &buf, true);
++      if (ret < 0)
++              goto err;
++      ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
++err:
++      kfree(buf);
+       return ret;
+ }
diff --git a/queue-3.9/mac80211-fix-station-entry-leak-warning-while-suspending.patch b/queue-3.9/mac80211-fix-station-entry-leak-warning-while-suspending.patch
new file mode 100644 (file)
index 0000000..876345a
--- /dev/null
@@ -0,0 +1,46 @@
+From b20d34c458bc2bbd0a4624f2933581e01e72d875 Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Wed, 17 Apr 2013 11:26:40 +0200
+Subject: mac80211: fix station entry leak/warning while suspending
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit b20d34c458bc2bbd0a4624f2933581e01e72d875 upstream.
+
+Since Stanislaw's patches, when suspending while connected,
+cfg80211 will disconnect. This causes the AP station to be
+removed, which uses call_rcu() to clean up. Due to needing
+process context, this queues a work struct on the mac80211
+workqueue. This will warn and fail when already suspended,
+which can happen if the rcu call doesn't happen quickly.
+
+To fix this, replace the synchronize_net() which is really
+just synchronize_rcu_expedited() with rcu_barrier(), which
+unlike synchronize_rcu() waits until RCU callback have run
+and thus avoids this issue.
+
+In theory, this can even happen without Stanislaw's change
+to disconnect on suspend since userspace might disconnect
+just before suspending, though then it's unlikely that the
+call_rcu() will be delayed long enough.
+
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/pm.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/mac80211/pm.c
++++ b/net/mac80211/pm.c
+@@ -53,8 +53,8 @@ int __ieee80211_suspend(struct ieee80211
+       ieee80211_stop_queues_by_reason(hw,
+                       IEEE80211_QUEUE_STOP_REASON_SUSPEND);
+-      /* flush out all packets */
+-      synchronize_net();
++      /* flush out all packets and station cleanup call_rcu()s */
++      rcu_barrier();
+       drv_flush(local, false);
diff --git a/queue-3.9/mac80211-use-synchronize_rcu-with-rcu_barrier.patch b/queue-3.9/mac80211-use-synchronize_rcu-with-rcu_barrier.patch
new file mode 100644 (file)
index 0000000..46df892
--- /dev/null
@@ -0,0 +1,65 @@
+From 8ceb59557bdc373e532b87d4142ce27e04218f0e Mon Sep 17 00:00:00 2001
+From: Bob Copeland <me@bobcopeland.com>
+Date: Thu, 18 Apr 2013 18:26:49 -0400
+Subject: mac80211: use synchronize_rcu() with rcu_barrier()
+
+From: Bob Copeland <me@bobcopeland.com>
+
+commit 8ceb59557bdc373e532b87d4142ce27e04218f0e upstream.
+
+The RCU docs used to state that rcu_barrier() included a wait
+for an RCU grace period; however the comments for rcu_barrier()
+as of commit f0a0e6f... "rcu: Clarify memory-ordering properties
+of grace-period primitives" contradict this.
+
+So add back synchronize_{rcu,net}() to where they once were,
+but keep the rcu_barrier()s for the call_rcu() callbacks.
+
+Signed-off-by: Bob Copeland <bob@cozybit.com>
+Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/cfg.c   |    1 +
+ net/mac80211/iface.c |    5 +++--
+ net/mac80211/pm.c    |    1 +
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -1034,6 +1034,7 @@ static int ieee80211_stop_ap(struct wiph
+       list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list)
+               sta_info_flush_defer(vlan);
+       sta_info_flush_defer(sdata);
++      synchronize_net();
+       rcu_barrier();
+       list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list)
+               sta_info_flush_cleanup(vlan);
+--- a/net/mac80211/iface.c
++++ b/net/mac80211/iface.c
+@@ -844,11 +844,12 @@ static void ieee80211_do_stop(struct iee
+                *
+                * sta_info_flush_cleanup() requires rcu_barrier()
+                * first to wait for the station call_rcu() calls
+-               * to complete, here we need at least sychronize_rcu()
+-               * it to wait for the RX path in case it is using the
++               * to complete, and we also need synchronize_rcu()
++               * to wait for the RX path in case it is using the
+                * interface and enqueuing frames at this very time on
+                * another CPU.
+                */
++              synchronize_rcu();
+               rcu_barrier();
+               sta_info_flush_cleanup(sdata);
+--- a/net/mac80211/pm.c
++++ b/net/mac80211/pm.c
+@@ -54,6 +54,7 @@ int __ieee80211_suspend(struct ieee80211
+                       IEEE80211_QUEUE_STOP_REASON_SUSPEND);
+       /* flush out all packets and station cleanup call_rcu()s */
++      synchronize_net();
+       rcu_barrier();
+       drv_flush(local, false);
diff --git a/queue-3.9/mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch b/queue-3.9/mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch
new file mode 100644 (file)
index 0000000..deb5d1d
--- /dev/null
@@ -0,0 +1,39 @@
+From 5b0d9b218b74042ff72bf4bfda6eeb2e4bf98397 Mon Sep 17 00:00:00 2001
+From: Yogesh Ashok Powar <yogeshp@marvell.com>
+Date: Tue, 23 Apr 2013 16:49:48 -0700
+Subject: mwifiex: Call pci_release_region after calling pci_disable_device
+
+From: Yogesh Ashok Powar <yogeshp@marvell.com>
+
+commit 5b0d9b218b74042ff72bf4bfda6eeb2e4bf98397 upstream.
+
+"drivers should call pci_release_region() AFTER
+calling pci_disable_device()"
+
+Please refer section 3.2 Request MMIO/IOP resources
+in Documentation/PCI/pci.txt
+
+Signed-off-by: Avinash Patil <patila@marvell.com>
+Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
+Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
+Signed-off-by: Bing Zhao <bzhao@marvell.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/mwifiex/pcie.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/mwifiex/pcie.c
++++ b/drivers/net/wireless/mwifiex/pcie.c
+@@ -2281,9 +2281,9 @@ static void mwifiex_pcie_cleanup(struct
+       if (pdev) {
+               pci_iounmap(pdev, card->pci_mmap);
+               pci_iounmap(pdev, card->pci_mmap1);
++              pci_disable_device(pdev);
+               pci_release_region(pdev, 2);
+               pci_release_region(pdev, 0);
+-              pci_disable_device(pdev);
+               pci_set_drvdata(pdev, NULL);
+       }
+ }
diff --git a/queue-3.9/mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch b/queue-3.9/mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch
new file mode 100644 (file)
index 0000000..9288db0
--- /dev/null
@@ -0,0 +1,37 @@
+From c380aafb77b7435d010698fe3ca6d3e1cd745fde Mon Sep 17 00:00:00 2001
+From: Yogesh Ashok Powar <yogeshp@marvell.com>
+Date: Tue, 23 Apr 2013 16:49:47 -0700
+Subject: mwifiex: Use pci_release_region() instead of a pci_release_regions()
+
+From: Yogesh Ashok Powar <yogeshp@marvell.com>
+
+commit c380aafb77b7435d010698fe3ca6d3e1cd745fde upstream.
+
+PCI regions are associated with the device using
+pci_request_region() call. Hence use pci_release_region()
+instead of pci_release_regions().
+
+Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
+Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
+Signed-off-by: Avinash Patil <patila@marvell.com>
+Signed-off-by: Bing Zhao <bzhao@marvell.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/mwifiex/pcie.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/mwifiex/pcie.c
++++ b/drivers/net/wireless/mwifiex/pcie.c
+@@ -2281,8 +2281,8 @@ static void mwifiex_pcie_cleanup(struct
+       if (pdev) {
+               pci_iounmap(pdev, card->pci_mmap);
+               pci_iounmap(pdev, card->pci_mmap1);
+-
+-              pci_release_regions(pdev);
++              pci_release_region(pdev, 2);
++              pci_release_region(pdev, 0);
+               pci_disable_device(pdev);
+               pci_set_drvdata(pdev, NULL);
+       }
diff --git a/queue-3.9/powerpc-add-isync-to-copy_and_flush.patch b/queue-3.9/powerpc-add-isync-to-copy_and_flush.patch
new file mode 100644 (file)
index 0000000..79a0906
--- /dev/null
@@ -0,0 +1,43 @@
+From 29ce3c5073057991217916abc25628e906911757 Mon Sep 17 00:00:00 2001
+From: Michael Neuling <michael.neuling@au1.ibm.com>
+Date: Wed, 24 Apr 2013 00:30:09 +0000
+Subject: powerpc: Add isync to copy_and_flush
+
+From: Michael Neuling <michael.neuling@au1.ibm.com>
+
+commit 29ce3c5073057991217916abc25628e906911757 upstream.
+
+In __after_prom_start we copy the kernel down to zero in two calls to
+copy_and_flush.  After the first call (copy from 0 to copy_to_here:)
+we jump to the newly copied code soon after.
+
+Unfortunately there's no isync between the copy of this code and the
+jump to it.  Hence it's possible that stale instructions could still be
+in the icache or pipeline before we branch to it.
+
+We've seen this on real machines and it's results in no console output
+after:
+  calling quiesce...
+  returning from prom_init
+
+The below adds an isync to ensure that the copy and flushing has
+completed before any branching to the new instructions occurs.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/head_64.S |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/kernel/head_64.S
++++ b/arch/powerpc/kernel/head_64.S
+@@ -509,6 +509,7 @@ _GLOBAL(copy_and_flush)
+       sync
+       addi    r5,r5,8
+       addi    r6,r6,8
++      isync
+       blr
+ .align 8
diff --git a/queue-3.9/powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch b/queue-3.9/powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch
new file mode 100644 (file)
index 0000000..7248e09
--- /dev/null
@@ -0,0 +1,43 @@
+From 3e96ca7f007ddb06b82a74a68585d1dbafa85ff1 Mon Sep 17 00:00:00 2001
+From: Michael Neuling <mikey@neuling.org>
+Date: Thu, 25 Apr 2013 15:30:57 +0000
+Subject: powerpc: Fix hardware IRQs with MMU on exceptions when HV=0
+
+From: Michael Neuling <mikey@neuling.org>
+
+commit 3e96ca7f007ddb06b82a74a68585d1dbafa85ff1 upstream.
+
+POWER8 allows us to take interrupts with the MMU on.  This gives us a
+second set of vectors offset at 0x4000.
+
+Unfortunately when coping these vectors we missed checking for MSR HV
+for hardware interrupts (0x500).  This results in us trying to use
+HSRR0/1 when HV=0, rather than SRR0/1 on HW IRQs
+
+The below fixes this to check CPU_FTR_HVMODE when patching the code at
+0x4500.
+
+Also we remove the check for CPU_FTR_ARCH_206 since relocation on IRQs
+are only available in arch 2.07 and beyond.
+
+Thanks to benh for helping find this.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/exceptions-64s.S |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/kernel/exceptions-64s.S
++++ b/arch/powerpc/kernel/exceptions-64s.S
+@@ -797,7 +797,7 @@ hardware_interrupt_relon_hv:
+               _MASKABLE_RELON_EXCEPTION_PSERIES(0x502, hardware_interrupt, EXC_HV, SOFTEN_TEST_HV)
+       FTR_SECTION_ELSE
+               _MASKABLE_RELON_EXCEPTION_PSERIES(0x500, hardware_interrupt, EXC_STD, SOFTEN_TEST_PR)
+-      ALT_FTR_SECTION_END_IFSET(CPU_FTR_ARCH_206)
++      ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE)
+       STD_RELON_EXCEPTION_PSERIES(0x4600, 0x600, alignment)
+       STD_RELON_EXCEPTION_PSERIES(0x4700, 0x700, program_check)
+       STD_RELON_EXCEPTION_PSERIES(0x4800, 0x800, fp_unavailable)
diff --git a/queue-3.9/powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch b/queue-3.9/powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch
new file mode 100644 (file)
index 0000000..50a8f69
--- /dev/null
@@ -0,0 +1,37 @@
+From 8c2a381734fc9718f127f4aba958e8a7958d4028 Mon Sep 17 00:00:00 2001
+From: Michael Neuling <mikey@neuling.org>
+Date: Wed, 24 Apr 2013 21:00:37 +0000
+Subject: powerpc/power8: Fix secondary CPUs hanging on boot for HV=0
+
+From: Michael Neuling <mikey@neuling.org>
+
+commit 8c2a381734fc9718f127f4aba958e8a7958d4028 upstream.
+
+In __restore_cpu_power8 we determine if we are HV and if not, we return
+before setting HV only resources.
+
+Unfortunately we forgot to restore the link register from r11 before
+returning.
+
+This will happen on boot and with secondary CPUs not coming online.
+
+This adds the missing link register restore.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/cpu_setup_power.S |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/kernel/cpu_setup_power.S
++++ b/arch/powerpc/kernel/cpu_setup_power.S
+@@ -66,6 +66,7 @@ _GLOBAL(__restore_cpu_power8)
+       bl      __init_FSCR
+       mfmsr   r3
+       rldicl. r0,r3,4,63
++      mtlr    r11
+       beqlr
+       li      r0,0
+       mtspr   SPRN_LPID,r0
diff --git a/queue-3.9/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch b/queue-3.9/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch
new file mode 100644 (file)
index 0000000..0924ef4
--- /dev/null
@@ -0,0 +1,34 @@
+From 6747e83235caecd30b186d1282e4eba7679f81b7 Mon Sep 17 00:00:00 2001
+From: Michael Ellerman <michael@ellerman.id.au>
+Date: Tue, 23 Apr 2013 15:13:14 +0000
+Subject: powerpc/spufs: Initialise inode->i_ino in spufs_new_inode()
+
+From: Michael Ellerman <michael@ellerman.id.au>
+
+commit 6747e83235caecd30b186d1282e4eba7679f81b7 upstream.
+
+In commit 85fe402 (fs: do not assign default i_ino in new_inode), the
+initialisation of i_ino was removed from new_inode() and pushed down
+into the callers. However spufs_new_inode() was not updated.
+
+This exhibits as no files appearing in /spu, because all our dirents
+have a zero inode, which readdir() seems to dislike.
+
+Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/platforms/cell/spufs/inode.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/platforms/cell/spufs/inode.c
++++ b/arch/powerpc/platforms/cell/spufs/inode.c
+@@ -99,6 +99,7 @@ spufs_new_inode(struct super_block *sb,
+       if (!inode)
+               goto out;
++      inode->i_ino = get_next_ino();
+       inode->i_mode = mode;
+       inode->i_uid = current_fsuid();
+       inode->i_gid = current_fsgid();
index 451b06f0a0fcd8c5a0f074b0541285d3aea8652d..f1fd88d6ad4792d422d3e58100bf57c387feff16 100644 (file)
@@ -1,2 +1,20 @@
 usb-serial-option-added-support-olivetti-olicard-145.patch
 usb-option-add-a-d-link-dwm-156-variant.patch
+staging-zsmalloc-fix-link-error-on-arm.patch
+arm-omap3-cpuidle-enable-time-keeping.patch
+arm-u300-fix-ages-old-copy-paste-bug.patch
+arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch
+arm-at91-remove-partial-parameter-in-bootargs-for.patch
+arm-at91-fix-typo-in-restart-code-panic-message.patch
+arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch
+arm-at91-trivial-typos-in-compatible-property.patch
+powerpc-add-isync-to-copy_and_flush.patch
+powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch
+powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch
+powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch
+iwlwifi-fix-freeing-uninitialized-pointer.patch
+iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch
+mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch
+mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch
+mac80211-fix-station-entry-leak-warning-while-suspending.patch
+mac80211-use-synchronize_rcu-with-rcu_barrier.patch
diff --git a/queue-3.9/staging-zsmalloc-fix-link-error-on-arm.patch b/queue-3.9/staging-zsmalloc-fix-link-error-on-arm.patch
new file mode 100644 (file)
index 0000000..615df2c
--- /dev/null
@@ -0,0 +1,51 @@
+From d95abbbb291bf5bce078148f53603ce9c0aa1d44 Mon Sep 17 00:00:00 2001
+From: Joerg Roedel <joro@8bytes.org>
+Date: Wed, 27 Mar 2013 01:43:14 +0100
+Subject: staging: zsmalloc: Fix link error on ARM
+
+From: Joerg Roedel <joro@8bytes.org>
+
+commit d95abbbb291bf5bce078148f53603ce9c0aa1d44 upstream.
+
+Testing the arm chromebook config against the upstream
+kernel produces a linker error for the zsmalloc module from
+staging. The symbol flush_tlb_kernel_range is not available
+there. Fix this by removing the reimplementation of
+unmap_kernel_range in the zsmalloc module and using the
+function directly. The unmap_kernel_range function is not
+usable by modules, so also disallow building the driver as a
+module for now.
+
+Signed-off-by: Joerg Roedel <joro@8bytes.org>
+Acked-by: Minchan Kim <minchan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/zsmalloc/Kconfig         |    2 +-
+ drivers/staging/zsmalloc/zsmalloc-main.c |    5 +----
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+--- a/drivers/staging/zsmalloc/Kconfig
++++ b/drivers/staging/zsmalloc/Kconfig
+@@ -1,5 +1,5 @@
+ config ZSMALLOC
+-      tristate "Memory allocator for compressed pages"
++      bool "Memory allocator for compressed pages"
+       default n
+       help
+         zsmalloc is a slab-based memory allocator designed to store
+--- a/drivers/staging/zsmalloc/zsmalloc-main.c
++++ b/drivers/staging/zsmalloc/zsmalloc-main.c
+@@ -656,11 +656,8 @@ static inline void __zs_unmap_object(str
+                               struct page *pages[2], int off, int size)
+ {
+       unsigned long addr = (unsigned long)area->vm_addr;
+-      unsigned long end = addr + (PAGE_SIZE * 2);
+-      flush_cache_vunmap(addr, end);
+-      unmap_kernel_range_noflush(addr, PAGE_SIZE * 2);
+-      flush_tlb_kernel_range(addr, end);
++      unmap_kernel_range(addr, PAGE_SIZE * 2);
+ }
+ #else /* USE_PGTABLE_MAPPING */