From: Greg Kroah-Hartman Date: Fri, 3 May 2013 02:34:38 +0000 (-0700) Subject: 3.8-stable patches X-Git-Tag: v3.0.77~45 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fed6a35f2e4842bde29d3d6f5ff5e1789bd87dec;p=thirdparty%2Fkernel%2Fstable-queue.git 3.8-stable patches 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 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 --- diff --git a/queue-3.8/arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch b/queue-3.8/arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch new file mode 100644 index 00000000000..ada50244e67 --- /dev/null +++ b/queue-3.8/arm-at91-at91sam9260.dtsi-fix-u-s-art-pinctrl-encoding.patch @@ -0,0 +1,65 @@ +From f10491fff07dcced77f8ab1b3bc1f8e18715bfb9 Mon Sep 17 00:00:00 2001 +From: Douglas Gilbert +Date: Thu, 4 Apr 2013 18:19:55 +0200 +Subject: ARM: at91/at91sam9260.dtsi: fix u(s)art pinctrl encoding + +From: Douglas Gilbert + +commit f10491fff07dcced77f8ab1b3bc1f8e18715bfb9 upstream. + +Signed-off-by: Douglas Gilbert +[nicolas.ferre@atmel.com: fix rts/cts for usart3] +Signed-off-by: Nicolas Ferre +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/arm-at91-fix-typo-in-restart-code-panic-message.patch b/queue-3.8/arm-at91-fix-typo-in-restart-code-panic-message.patch new file mode 100644 index 00000000000..003fcfac378 --- /dev/null +++ b/queue-3.8/arm-at91-fix-typo-in-restart-code-panic-message.patch @@ -0,0 +1,29 @@ +From e7619459d47a673af3433208a42f583af920e9db Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Sat, 23 Mar 2013 10:58:57 +0100 +Subject: ARM: at91: Fix typo in restart code panic message + +From: Maxime Ripard + +commit e7619459d47a673af3433208a42f583af920e9db upstream. + +Signed-off-by: Maxime Ripard +Acked-by: Jean-Christophe PLAGNIOL-VILLARD +Signed-off-by: Nicolas Ferre +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/arm-at91-remove-partial-parameter-in-bootargs-for.patch b/queue-3.8/arm-at91-remove-partial-parameter-in-bootargs-for.patch new file mode 100644 index 00000000000..a5b59770c03 --- /dev/null +++ b/queue-3.8/arm-at91-remove-partial-parameter-in-bootargs-for.patch @@ -0,0 +1,31 @@ +From b090e5f68c0353534880b95ea0df56b8c0230b8c Mon Sep 17 00:00:00 2001 +From: Nicolas Ferre +Date: Fri, 22 Mar 2013 12:32:09 +0100 +Subject: ARM: at91: remove partial parameter in bootargs for + at91sam9x5ek.dtsi + +From: Nicolas Ferre + +commit b090e5f68c0353534880b95ea0df56b8c0230b8c upstream. + +Remove the malformed "mem=" bootargs parameter in at91sam9x5ek.dtsi + +Acked-by: Jean-Christophe PLAGNIOL-VILLARD +Signed-off-by: Nicolas Ferre +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch b/queue-3.8/arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch new file mode 100644 index 00000000000..fd6190d4835 --- /dev/null +++ b/queue-3.8/arm-at91-trivial-fix-model-name-for-sam9g15-ek.patch @@ -0,0 +1,27 @@ +From 88fcb59a06556bf10eac97d7abb913cccea2c830 Mon Sep 17 00:00:00 2001 +From: Nicolas Ferre +Date: Wed, 20 Feb 2013 17:32:20 +0100 +Subject: ARM: at91/trivial: fix model name for SAM9G15-EK + +From: Nicolas Ferre + +commit 88fcb59a06556bf10eac97d7abb913cccea2c830 upstream. + +Acked-by: Jean-Christophe PLAGNIOL-VILLARD +Signed-off-by: Nicolas Ferre +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/arm-at91-trivial-typos-in-compatible-property.patch b/queue-3.8/arm-at91-trivial-typos-in-compatible-property.patch new file mode 100644 index 00000000000..894024376d8 --- /dev/null +++ b/queue-3.8/arm-at91-trivial-typos-in-compatible-property.patch @@ -0,0 +1,79 @@ +From 2a5a461f179509142c661d79f878855798b85201 Mon Sep 17 00:00:00 2001 +From: Nicolas Ferre +Date: Thu, 21 Mar 2013 18:01:42 +0100 +Subject: ARM: at91/trivial: typos in compatible property + +From: Nicolas Ferre + +commit 2a5a461f179509142c661d79f878855798b85201 upstream. + +- unneeded whitespace +- missing double quote + +Acked-by: Jean-Christophe PLAGNIOL-VILLARD +Signed-off-by: Nicolas Ferre +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/arm-omap3-cpuidle-enable-time-keeping.patch b/queue-3.8/arm-omap3-cpuidle-enable-time-keeping.patch new file mode 100644 index 00000000000..398f34120d7 --- /dev/null +++ b/queue-3.8/arm-omap3-cpuidle-enable-time-keeping.patch @@ -0,0 +1,38 @@ +From 0d97558901c446a989de202a5d9ae94ec53644e5 Mon Sep 17 00:00:00 2001 +From: Daniel Lezcano +Date: Fri, 29 Mar 2013 11:31:35 +0100 +Subject: ARM: omap3: cpuidle: enable time keeping + +From: Daniel Lezcano + +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 +Acked-by: Santosh Shilimkar +Signed-off-by: Kevin Hilman +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -265,8 +265,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.8/arm-u300-fix-ages-old-copy-paste-bug.patch b/queue-3.8/arm-u300-fix-ages-old-copy-paste-bug.patch new file mode 100644 index 00000000000..1b025ccbb89 --- /dev/null +++ b/queue-3.8/arm-u300-fix-ages-old-copy-paste-bug.patch @@ -0,0 +1,31 @@ +From 0259d9eb30d003af305626db2d8332805696e60d Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Fri, 26 Apr 2013 15:29:55 +0200 +Subject: ARM: u300: fix ages old copy/paste bug + +From: Linus Walleij + +commit 0259d9eb30d003af305626db2d8332805696e60d upstream. + +The UART1 is on the fast AHB bridge, not on the slow bus. + +Acked-by: Arnd Bergmann +Signed-off-by: Linus Walleij +Signed-off-by: Olof Johansson +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch b/queue-3.8/iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch new file mode 100644 index 00000000000..a074c367b54 --- /dev/null +++ b/queue-3.8/iwlwifi-dvm-don-t-send-zeroed-lq-cmd.patch @@ -0,0 +1,46 @@ +From 63b77bf489881747c5118476918cc8c29378ee63 Mon Sep 17 00:00:00 2001 +From: Emmanuel Grumbach +Date: Wed, 17 Apr 2013 09:47:00 +0300 +Subject: iwlwifi: dvm: don't send zeroed LQ cmd + +From: Emmanuel Grumbach + +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 +Reviewed-by: Johannes Berg +[move zero_lq and make static const] +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -707,6 +707,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; +@@ -745,7 +746,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.8/iwlwifi-fix-freeing-uninitialized-pointer.patch b/queue-3.8/iwlwifi-fix-freeing-uninitialized-pointer.patch new file mode 100644 index 00000000000..028a956e2a9 --- /dev/null +++ b/queue-3.8/iwlwifi-fix-freeing-uninitialized-pointer.patch @@ -0,0 +1,52 @@ +From 3309ccf7fcebceef540ebe90c65d2f94d745a45b Mon Sep 17 00:00:00 2001 +From: Stanislaw Gruszka +Date: Tue, 16 Apr 2013 15:38:29 +0200 +Subject: iwlwifi: fix freeing uninitialized pointer + +From: Stanislaw Gruszka + +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 +Reviewed-by: Emmanuel Grumbach +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + 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.8/mac80211-fix-station-entry-leak-warning-while-suspending.patch b/queue-3.8/mac80211-fix-station-entry-leak-warning-while-suspending.patch new file mode 100644 index 00000000000..a320e6ddb34 --- /dev/null +++ b/queue-3.8/mac80211-fix-station-entry-leak-warning-while-suspending.patch @@ -0,0 +1,46 @@ +From b20d34c458bc2bbd0a4624f2933581e01e72d875 Mon Sep 17 00:00:00 2001 +From: Johannes Berg +Date: Wed, 17 Apr 2013 11:26:40 +0200 +Subject: mac80211: fix station entry leak/warning while suspending + +From: Johannes Berg + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/pm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/net/mac80211/pm.c ++++ b/net/mac80211/pm.c +@@ -52,8 +52,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.8/mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch b/queue-3.8/mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch new file mode 100644 index 00000000000..2f23ddb7ce4 --- /dev/null +++ b/queue-3.8/mwifiex-call-pci_release_region-after-calling-pci_disable_device.patch @@ -0,0 +1,39 @@ +From 5b0d9b218b74042ff72bf4bfda6eeb2e4bf98397 Mon Sep 17 00:00:00 2001 +From: Yogesh Ashok Powar +Date: Tue, 23 Apr 2013 16:49:48 -0700 +Subject: mwifiex: Call pci_release_region after calling pci_disable_device + +From: Yogesh Ashok Powar + +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 +Signed-off-by: Amitkumar Karwar +Signed-off-by: Yogesh Ashok Powar +Signed-off-by: Bing Zhao +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -1831,9 +1831,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.8/mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch b/queue-3.8/mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch new file mode 100644 index 00000000000..62beb0172d9 --- /dev/null +++ b/queue-3.8/mwifiex-use-pci_release_region-instead-of-a-pci_release_regions.patch @@ -0,0 +1,37 @@ +From c380aafb77b7435d010698fe3ca6d3e1cd745fde Mon Sep 17 00:00:00 2001 +From: Yogesh Ashok Powar +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 + +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 +Signed-off-by: Amitkumar Karwar +Signed-off-by: Avinash Patil +Signed-off-by: Bing Zhao +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -1831,8 +1831,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.8/powerpc-add-isync-to-copy_and_flush.patch b/queue-3.8/powerpc-add-isync-to-copy_and_flush.patch new file mode 100644 index 00000000000..262bc40dd1a --- /dev/null +++ b/queue-3.8/powerpc-add-isync-to-copy_and_flush.patch @@ -0,0 +1,43 @@ +From 29ce3c5073057991217916abc25628e906911757 Mon Sep 17 00:00:00 2001 +From: Michael Neuling +Date: Wed, 24 Apr 2013 00:30:09 +0000 +Subject: powerpc: Add isync to copy_and_flush + +From: Michael Neuling + +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 +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -490,6 +490,7 @@ _GLOBAL(copy_and_flush) + sync + addi r5,r5,8 + addi r6,r6,8 ++ isync + blr + + .align 8 diff --git a/queue-3.8/powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch b/queue-3.8/powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch new file mode 100644 index 00000000000..f5df197f353 --- /dev/null +++ b/queue-3.8/powerpc-fix-hardware-irqs-with-mmu-on-exceptions-when-hv-0.patch @@ -0,0 +1,43 @@ +From 3e96ca7f007ddb06b82a74a68585d1dbafa85ff1 Mon Sep 17 00:00:00 2001 +From: Michael Neuling +Date: Thu, 25 Apr 2013 15:30:57 +0000 +Subject: powerpc: Fix hardware IRQs with MMU on exceptions when HV=0 + +From: Michael Neuling + +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 +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -740,7 +740,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.8/powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch b/queue-3.8/powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch new file mode 100644 index 00000000000..7049d733718 --- /dev/null +++ b/queue-3.8/powerpc-power8-fix-secondary-cpus-hanging-on-boot-for-hv-0.patch @@ -0,0 +1,37 @@ +From 8c2a381734fc9718f127f4aba958e8a7958d4028 Mon Sep 17 00:00:00 2001 +From: Michael Neuling +Date: Wed, 24 Apr 2013 21:00:37 +0000 +Subject: powerpc/power8: Fix secondary CPUs hanging on boot for HV=0 + +From: Michael Neuling + +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 +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -64,6 +64,7 @@ _GLOBAL(__restore_cpu_power8) + mflr r11 + mfmsr r3 + rldicl. r0,r3,4,63 ++ mtlr r11 + beqlr + li r0,0 + mtspr SPRN_LPID,r0 diff --git a/queue-3.8/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch b/queue-3.8/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch new file mode 100644 index 00000000000..0924ef4b20c --- /dev/null +++ b/queue-3.8/powerpc-spufs-initialise-inode-i_ino-in-spufs_new_inode.patch @@ -0,0 +1,34 @@ +From 6747e83235caecd30b186d1282e4eba7679f81b7 Mon Sep 17 00:00:00 2001 +From: Michael Ellerman +Date: Tue, 23 Apr 2013 15:13:14 +0000 +Subject: powerpc/spufs: Initialise inode->i_ino in spufs_new_inode() + +From: Michael Ellerman + +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 +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + 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(); diff --git a/queue-3.8/series b/queue-3.8/series index 451b06f0a0f..1b97c1801f0 100644 --- a/queue-3.8/series +++ b/queue-3.8/series @@ -1,2 +1,19 @@ 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 diff --git a/queue-3.8/staging-zsmalloc-fix-link-error-on-arm.patch b/queue-3.8/staging-zsmalloc-fix-link-error-on-arm.patch new file mode 100644 index 00000000000..9d52be350c4 --- /dev/null +++ b/queue-3.8/staging-zsmalloc-fix-link-error-on-arm.patch @@ -0,0 +1,51 @@ +From d95abbbb291bf5bce078148f53603ce9c0aa1d44 Mon Sep 17 00:00:00 2001 +From: Joerg Roedel +Date: Wed, 27 Mar 2013 01:43:14 +0100 +Subject: staging: zsmalloc: Fix link error on ARM + +From: Joerg Roedel + +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 +Acked-by: Minchan Kim +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -657,11 +657,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 */