]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Sep 2014 00:01:48 +0000 (17:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Sep 2014 00:01:48 +0000 (17:01 -0700)
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

queue-3.10/kernel-smp.c-on_each_cpu_cond-fix-warning-in-fallback-path.patch [new file with mode: 0644]
queue-3.10/mfd-omap-usb-host-fix-improper-mask-use.patch [new file with mode: 0644]
queue-3.10/powerpc-mm-numa-fix-break-placement.patch [new file with mode: 0644]
queue-3.10/powerpc-mm-use-read-barrier-when-creating-real_pte.patch [new file with mode: 0644]
queue-3.10/powerpc-pseries-failure-on-removing-device-node.patch [new file with mode: 0644]
queue-3.10/regulator-arizona-ldo1-remove-bypass-functionality.patch [new file with mode: 0644]
queue-3.10/series

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 (file)
index 0000000..600376d
--- /dev/null
@@ -0,0 +1,38 @@
+From 618fde872163e782183ce574c77f1123e2be8887 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sasha.levin@oracle.com>
+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 <sasha.levin@oracle.com>
+
+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 <sasha.levin@oracle.com>
+Cc: Christoph Lameter <cl@gentwo.org>
+Cc: Gilad Ben-Yossef <gilad@benyossef.com>
+Cc: David Rientjes <rientjes@google.com>
+Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
+Cc: Tejun Heo <htejun@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..bcf6f67
--- /dev/null
@@ -0,0 +1,35 @@
+From 46de8ff8e80a6546aa3d2fdf58c6776666301a0c Mon Sep 17 00:00:00 2001
+From: Michael Welling <mwelling@emacinc.com>
+Date: Mon, 28 Jul 2014 18:01:04 -0500
+Subject: mfd: omap-usb-host: Fix improper mask use.
+
+From: Michael Welling <mwelling@emacinc.com>
+
+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 <mwelling@emacinc.com>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..e2f2782
--- /dev/null
@@ -0,0 +1,31 @@
+From b00fc6ec1f24f9d7af9b8988b6a198186eb3408c Mon Sep 17 00:00:00 2001
+From: Andrey Utkin <andrey.krieger.utkin@gmail.com>
+Date: Mon, 4 Aug 2014 23:13:10 +0300
+Subject: powerpc/mm/numa: Fix break placement
+
+From: Andrey Utkin <andrey.krieger.utkin@gmail.com>
+
+commit b00fc6ec1f24f9d7af9b8988b6a198186eb3408c upstream.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81631
+Reported-by: David Binderman <dcb314@hotmail.com>
+Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..24d419a
--- /dev/null
@@ -0,0 +1,64 @@
+From 85c1fafd7262e68ad821ee1808686b1392b1167d Mon Sep 17 00:00:00 2001
+From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
+Date: Wed, 13 Aug 2014 12:32:03 +0530
+Subject: powerpc/mm: Use read barrier when creating real_pte
+
+From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
+
+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 <aneesh.kumar@linux.vnet.ibm.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..110211b
--- /dev/null
@@ -0,0 +1,51 @@
+From f1b3929c232784580e5d8ee324b6bc634e709575 Mon Sep 17 00:00:00 2001
+From: Gavin Shan <gwshan@linux.vnet.ibm.com>
+Date: Mon, 11 Aug 2014 19:16:19 +1000
+Subject: powerpc/pseries: Failure on removing device node
+
+From: Gavin Shan <gwshan@linux.vnet.ibm.com>
+
+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 <gwshan@linux.vnet.ibm.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..ed02fc2
--- /dev/null
@@ -0,0 +1,31 @@
+From 5b919f3ebb533cbe400664837e24f66a0836b907 Mon Sep 17 00:00:00 2001
+From: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com>
+Date: Fri, 4 Jul 2014 09:55:16 +0100
+Subject: regulator: arizona-ldo1: remove bypass functionality
+
+From: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com>
+
+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 <nikesh@opensource.wolfsonmicro.com>
+Signed-off-by: Mark Brown <broonie@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 = {
index 1e5fdc4cd3b3197ad6cf200a654904b9c90a2148..016c3f694cddf29c7b9b69a339c300732d49690a 100644 (file)
@@ -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