From edfe6bc3a9fd6248baf16f2bf8547e409e93c19f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 12 Sep 2014 17:01:48 -0700 Subject: [PATCH] 3.10-stable patches added patches: kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch mfd-omap-usb-host-fix-improper-mask-use.patch powerpc-mm-numa-fix-break-placement.patch powerpc-mm-use-read-barrier-when-creating-real_pte.patch powerpc-pseries-failure-on-removing-device-node.patch regulator-arizona-ldo1-remove-bypass-functionality.patch --- ...pu_cond-fix-warning-in-fallback-path.patch | 38 +++++++++++ ...-omap-usb-host-fix-improper-mask-use.patch | 35 ++++++++++ .../powerpc-mm-numa-fix-break-placement.patch | 31 +++++++++ ...-read-barrier-when-creating-real_pte.patch | 64 +++++++++++++++++++ ...ries-failure-on-removing-device-node.patch | 51 +++++++++++++++ ...ona-ldo1-remove-bypass-functionality.patch | 31 +++++++++ queue-3.10/series | 6 ++ 7 files changed, 256 insertions(+) create mode 100644 queue-3.10/kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch create mode 100644 queue-3.10/mfd-omap-usb-host-fix-improper-mask-use.patch create mode 100644 queue-3.10/powerpc-mm-numa-fix-break-placement.patch create mode 100644 queue-3.10/powerpc-mm-use-read-barrier-when-creating-real_pte.patch create mode 100644 queue-3.10/powerpc-pseries-failure-on-removing-device-node.patch create mode 100644 queue-3.10/regulator-arizona-ldo1-remove-bypass-functionality.patch diff --git a/queue-3.10/kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch b/queue-3.10/kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch new file mode 100644 index 00000000000..600376d35f0 --- /dev/null +++ b/queue-3.10/kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch @@ -0,0 +1,38 @@ +From 618fde872163e782183ce574c77f1123e2be8887 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 6 Aug 2014 16:08:14 -0700 +Subject: kernel/smp.c:on_each_cpu_cond(): fix warning in fallback path + +From: Sasha Levin + +commit 618fde872163e782183ce574c77f1123e2be8887 upstream. + +The rarely-executed memry-allocation-failed callback path generates a +WARN_ON_ONCE() when smp_call_function_single() succeeds. Presumably +it's supposed to warn on failures. + +Signed-off-by: Sasha Levin +Cc: Christoph Lameter +Cc: Gilad Ben-Yossef +Cc: David Rientjes +Cc: Joonsoo Kim +Cc: Tejun Heo +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/smp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/smp.c ++++ b/kernel/smp.c +@@ -658,7 +658,7 @@ void on_each_cpu_cond(bool (*cond_func)( + if (cond_func(cpu, info)) { + ret = smp_call_function_single(cpu, func, + info, wait); +- WARN_ON_ONCE(!ret); ++ WARN_ON_ONCE(ret); + } + preempt_enable(); + } diff --git a/queue-3.10/mfd-omap-usb-host-fix-improper-mask-use.patch b/queue-3.10/mfd-omap-usb-host-fix-improper-mask-use.patch new file mode 100644 index 00000000000..bcf6f679f85 --- /dev/null +++ b/queue-3.10/mfd-omap-usb-host-fix-improper-mask-use.patch @@ -0,0 +1,35 @@ +From 46de8ff8e80a6546aa3d2fdf58c6776666301a0c Mon Sep 17 00:00:00 2001 +From: Michael Welling +Date: Mon, 28 Jul 2014 18:01:04 -0500 +Subject: mfd: omap-usb-host: Fix improper mask use. + +From: Michael Welling + +commit 46de8ff8e80a6546aa3d2fdf58c6776666301a0c upstream. + +single-ulpi-bypass is a flag used for older OMAP3 silicon. + +The flag when set, can excite code that improperly uses the +OMAP_UHH_HOSTCONFIG_UPLI_BYPASS define to clear the corresponding bit. +Instead it clears all of the other bits disabling all of the ports in +the process. + +Signed-off-by: Michael Welling +Signed-off-by: Lee Jones +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mfd/omap-usb-host.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mfd/omap-usb-host.c ++++ b/drivers/mfd/omap-usb-host.c +@@ -445,7 +445,7 @@ static unsigned omap_usbhs_rev1_hostconf + + for (i = 0; i < omap->nports; i++) { + if (is_ehci_phy_mode(pdata->port_mode[i])) { +- reg &= OMAP_UHH_HOSTCONFIG_ULPI_BYPASS; ++ reg &= ~OMAP_UHH_HOSTCONFIG_ULPI_BYPASS; + break; + } + } diff --git a/queue-3.10/powerpc-mm-numa-fix-break-placement.patch b/queue-3.10/powerpc-mm-numa-fix-break-placement.patch new file mode 100644 index 00000000000..e2f27824187 --- /dev/null +++ b/queue-3.10/powerpc-mm-numa-fix-break-placement.patch @@ -0,0 +1,31 @@ +From b00fc6ec1f24f9d7af9b8988b6a198186eb3408c Mon Sep 17 00:00:00 2001 +From: Andrey Utkin +Date: Mon, 4 Aug 2014 23:13:10 +0300 +Subject: powerpc/mm/numa: Fix break placement + +From: Andrey Utkin + +commit b00fc6ec1f24f9d7af9b8988b6a198186eb3408c upstream. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81631 +Reported-by: David Binderman +Signed-off-by: Andrey Utkin +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/mm/numa.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/mm/numa.c ++++ b/arch/powerpc/mm/numa.c +@@ -586,8 +586,8 @@ static int __cpuinit cpu_numa_callback(s + case CPU_UP_CANCELED: + case CPU_UP_CANCELED_FROZEN: + unmap_cpu_from_node(lcpu); +- break; + ret = NOTIFY_OK; ++ break; + #endif + } + return ret; diff --git a/queue-3.10/powerpc-mm-use-read-barrier-when-creating-real_pte.patch b/queue-3.10/powerpc-mm-use-read-barrier-when-creating-real_pte.patch new file mode 100644 index 00000000000..24d419a5ba8 --- /dev/null +++ b/queue-3.10/powerpc-mm-use-read-barrier-when-creating-real_pte.patch @@ -0,0 +1,64 @@ +From 85c1fafd7262e68ad821ee1808686b1392b1167d Mon Sep 17 00:00:00 2001 +From: "Aneesh Kumar K.V" +Date: Wed, 13 Aug 2014 12:32:03 +0530 +Subject: powerpc/mm: Use read barrier when creating real_pte + +From: "Aneesh Kumar K.V" + +commit 85c1fafd7262e68ad821ee1808686b1392b1167d upstream. + +On ppc64 we support 4K hash pte with 64K page size. That requires +us to track the hash pte slot information on a per 4k basis. We do that +by storing the slot details in the second half of pte page. The pte bit +_PAGE_COMBO is used to indicate whether the second half need to be +looked while building real_pte. We need to use read memory barrier while +doing that so that load of hidx is not reordered w.r.t _PAGE_COMBO +check. On the store side we already do a lwsync in __hash_page_4K + +Signed-off-by: Aneesh Kumar K.V +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/include/asm/pte-hash64-64k.h | 30 +++++++++++++++++++++++++----- + 1 file changed, 25 insertions(+), 5 deletions(-) + +--- a/arch/powerpc/include/asm/pte-hash64-64k.h ++++ b/arch/powerpc/include/asm/pte-hash64-64k.h +@@ -46,11 +46,31 @@ + * in order to deal with 64K made of 4K HW pages. Thus we override the + * generic accessors and iterators here + */ +-#define __real_pte(e,p) ((real_pte_t) { \ +- (e), (pte_val(e) & _PAGE_COMBO) ? \ +- (pte_val(*((p) + PTRS_PER_PTE))) : 0 }) +-#define __rpte_to_hidx(r,index) ((pte_val((r).pte) & _PAGE_COMBO) ? \ +- (((r).hidx >> ((index)<<2)) & 0xf) : ((pte_val((r).pte) >> 12) & 0xf)) ++#define __real_pte __real_pte ++static inline real_pte_t __real_pte(pte_t pte, pte_t *ptep) ++{ ++ real_pte_t rpte; ++ ++ rpte.pte = pte; ++ rpte.hidx = 0; ++ if (pte_val(pte) & _PAGE_COMBO) { ++ /* ++ * Make sure we order the hidx load against the _PAGE_COMBO ++ * check. The store side ordering is done in __hash_page_4K ++ */ ++ smp_rmb(); ++ rpte.hidx = pte_val(*((ptep) + PTRS_PER_PTE)); ++ } ++ return rpte; ++} ++ ++static inline unsigned long __rpte_to_hidx(real_pte_t rpte, unsigned long index) ++{ ++ if ((pte_val(rpte.pte) & _PAGE_COMBO)) ++ return (rpte.hidx >> (index<<2)) & 0xf; ++ return (pte_val(rpte.pte) >> 12) & 0xf; ++} ++ + #define __rpte_to_pte(r) ((r).pte) + #define __rpte_sub_valid(rpte, index) \ + (pte_val(rpte.pte) & (_PAGE_HPTE_SUB0 >> (index))) diff --git a/queue-3.10/powerpc-pseries-failure-on-removing-device-node.patch b/queue-3.10/powerpc-pseries-failure-on-removing-device-node.patch new file mode 100644 index 00000000000..110211bb8f0 --- /dev/null +++ b/queue-3.10/powerpc-pseries-failure-on-removing-device-node.patch @@ -0,0 +1,51 @@ +From f1b3929c232784580e5d8ee324b6bc634e709575 Mon Sep 17 00:00:00 2001 +From: Gavin Shan +Date: Mon, 11 Aug 2014 19:16:19 +1000 +Subject: powerpc/pseries: Failure on removing device node + +From: Gavin Shan + +commit f1b3929c232784580e5d8ee324b6bc634e709575 upstream. + +While running command "drmgr -c phb -r -s 'PHB 528'", following +backtrace jumped out because the target device node isn't marked +with OF_DETACHED by of_detach_node(), which caused by error +returned from memory hotplug related reconfig notifier when +disabling CONFIG_MEMORY_HOTREMOVE. The patch fixes it. + +ERROR: Bad of_node_put() on /pci@800000020000210/ethernet@0 +CPU: 14 PID: 2252 Comm: drmgr Tainted: G W 3.16.0+ #427 +Call Trace: +[c000000012a776a0] [c000000000013d9c] .show_stack+0x88/0x148 (unreliable) +[c000000012a77750] [c00000000083cd34] .dump_stack+0x7c/0x9c +[c000000012a777d0] [c0000000006807c4] .of_node_release+0x58/0xe0 +[c000000012a77860] [c00000000038a7d0] .kobject_release+0x174/0x1b8 +[c000000012a77900] [c00000000038a884] .kobject_put+0x70/0x78 +[c000000012a77980] [c000000000681680] .of_node_put+0x28/0x34 +[c000000012a77a00] [c000000000681ea8] .__of_get_next_child+0x64/0x70 +[c000000012a77a90] [c000000000682138] .of_find_node_by_path+0x1b8/0x20c +[c000000012a77b40] [c000000000051840] .ofdt_write+0x308/0x688 +[c000000012a77c20] [c000000000238430] .proc_reg_write+0xb8/0xd4 +[c000000012a77cd0] [c0000000001cbeac] .vfs_write+0xec/0x1f8 +[c000000012a77d70] [c0000000001cc3b0] .SyS_write+0x58/0xa0 +[c000000012a77e30] [c00000000000a064] syscall_exit+0x0/0x98 + +Signed-off-by: Gavin Shan +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/platforms/pseries/hotplug-memory.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/platforms/pseries/hotplug-memory.c ++++ b/arch/powerpc/platforms/pseries/hotplug-memory.c +@@ -158,7 +158,7 @@ static int pseries_remove_memory(struct + static inline int pseries_remove_memblock(unsigned long base, + unsigned int memblock_size) + { +- return -EOPNOTSUPP; ++ return 0; + } + static inline int pseries_remove_memory(struct device_node *np) + { diff --git a/queue-3.10/regulator-arizona-ldo1-remove-bypass-functionality.patch b/queue-3.10/regulator-arizona-ldo1-remove-bypass-functionality.patch new file mode 100644 index 00000000000..ed02fc2dd90 --- /dev/null +++ b/queue-3.10/regulator-arizona-ldo1-remove-bypass-functionality.patch @@ -0,0 +1,31 @@ +From 5b919f3ebb533cbe400664837e24f66a0836b907 Mon Sep 17 00:00:00 2001 +From: Nikesh Oswal +Date: Fri, 4 Jul 2014 09:55:16 +0100 +Subject: regulator: arizona-ldo1: remove bypass functionality + +From: Nikesh Oswal + +commit 5b919f3ebb533cbe400664837e24f66a0836b907 upstream. + +WM5110/8280 devices do not support bypass mode for LDO1 so remove +the bypass callbacks registered with regulator core. + +Signed-off-by: Nikesh Oswal +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/regulator/arizona-ldo1.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/drivers/regulator/arizona-ldo1.c ++++ b/drivers/regulator/arizona-ldo1.c +@@ -141,8 +141,6 @@ static struct regulator_ops arizona_ldo1 + .map_voltage = regulator_map_voltage_linear, + .get_voltage_sel = regulator_get_voltage_sel_regmap, + .set_voltage_sel = regulator_set_voltage_sel_regmap, +- .get_bypass = regulator_get_bypass_regmap, +- .set_bypass = regulator_set_bypass_regmap, + }; + + static const struct regulator_desc arizona_ldo1 = { diff --git a/queue-3.10/series b/queue-3.10/series index 1e5fdc4cd3b..016c3f694cd 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -8,3 +8,9 @@ spi-omap2-mcspi-configure-hardware-when-slave-driver-changes-mode.patch firmware-do-not-use-warn_on-spin_is_locked.patch tpm-missing-tpm_chip_put-in-tpm_get_random.patch capabilities-remove-undefined-caps-from-all-processes.patch +kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch +mfd-omap-usb-host-fix-improper-mask-use.patch +regulator-arizona-ldo1-remove-bypass-functionality.patch +powerpc-mm-numa-fix-break-placement.patch +powerpc-mm-use-read-barrier-when-creating-real_pte.patch +powerpc-pseries-failure-on-removing-device-node.patch -- 2.47.3