]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Jul 2017 12:28:42 +0000 (14:28 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Jul 2017 12:28:42 +0000 (14:28 +0200)
added patches:
arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch
watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch

queue-3.18/arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch [new file with mode: 0644]
queue-3.18/series
queue-3.18/watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch [new file with mode: 0644]

diff --git a/queue-3.18/arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch b/queue-3.18/arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch
new file mode 100644 (file)
index 0000000..a38a7c0
--- /dev/null
@@ -0,0 +1,56 @@
+From 9e25ebfe56ece7541cd10a20d715cbdd148a2e06 Mon Sep 17 00:00:00 2001
+From: Doug Berger <opendmb@gmail.com>
+Date: Thu, 29 Jun 2017 18:41:36 +0100
+Subject: ARM: 8685/1: ensure memblock-limit is pmd-aligned
+
+From: Doug Berger <opendmb@gmail.com>
+
+commit 9e25ebfe56ece7541cd10a20d715cbdd148a2e06 upstream.
+
+The pmd containing memblock_limit is cleared by prepare_page_table()
+which creates the opportunity for early_alloc() to allocate unmapped
+memory if memblock_limit is not pmd aligned causing a boot-time hang.
+
+Commit 965278dcb8ab ("ARM: 8356/1: mm: handle non-pmd-aligned end of RAM")
+attempted to resolve this problem, but there is a path through the
+adjust_lowmem_bounds() routine where if all memory regions start and
+end on pmd-aligned addresses the memblock_limit will be set to
+arm_lowmem_limit.
+
+Since arm_lowmem_limit can be affected by the vmalloc early parameter,
+the value of arm_lowmem_limit may not be pmd-aligned. This commit
+corrects this oversight such that memblock_limit is always rounded
+down to pmd-alignment.
+
+Fixes: 965278dcb8ab ("ARM: 8356/1: mm: handle non-pmd-aligned end of RAM")
+Signed-off-by: Doug Berger <opendmb@gmail.com>
+Suggested-by: Mark Rutland <mark.rutland@arm.com>
+Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mm/mmu.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/arch/arm/mm/mmu.c
++++ b/arch/arm/mm/mmu.c
+@@ -1142,15 +1142,15 @@ void __init sanity_check_meminfo(void)
+       high_memory = __va(arm_lowmem_limit - 1) + 1;
++      if (!memblock_limit)
++              memblock_limit = arm_lowmem_limit;
++
+       /*
+        * Round the memblock limit down to a pmd size.  This
+        * helps to ensure that we will allocate memory from the
+        * last full pmd, which should be mapped.
+        */
+-      if (memblock_limit)
+-              memblock_limit = round_down(memblock_limit, PMD_SIZE);
+-      if (!memblock_limit)
+-              memblock_limit = arm_lowmem_limit;
++      memblock_limit = round_down(memblock_limit, PMD_SIZE);
+       memblock_set_current_limit(memblock_limit);
+ }
index e33391cd2185ebbe21c7d311e1a200a8a88e5e3f..81df034db043885f55c70b2acb599e9f364f0356 100644 (file)
@@ -27,3 +27,5 @@ mtd-bcm47xxpart-limit-scanned-flash-area-on-bcm47xx-mips-only.patch
 xfrm-fix-stack-access-out-of-bounds-with-config_xfrm_sub_policy.patch
 xfrm-null-dereference-on-allocation-failure.patch
 xfrm-oops-on-error-in-pfkey_msg2xfrm_state.patch
+watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch
+arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch
diff --git a/queue-3.18/watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch b/queue-3.18/watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch
new file mode 100644 (file)
index 0000000..ee2a52b
--- /dev/null
@@ -0,0 +1,44 @@
+From fedf266f9955d9a019643cde199a2fd9a0259f6f Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Thu, 27 Apr 2017 18:02:32 -0700
+Subject: watchdog: bcm281xx: Fix use of uninitialized spinlock.
+
+From: Eric Anholt <eric@anholt.net>
+
+commit fedf266f9955d9a019643cde199a2fd9a0259f6f upstream.
+
+The bcm_kona_wdt_set_resolution_reg() call takes the spinlock, so
+initialize it earlier.  Fixes a warning at boot with lock debugging
+enabled.
+
+Fixes: 6adb730dc208 ("watchdog: bcm281xx: Watchdog Driver")
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/watchdog/bcm_kona_wdt.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/watchdog/bcm_kona_wdt.c
++++ b/drivers/watchdog/bcm_kona_wdt.c
+@@ -299,6 +299,8 @@ static int bcm_kona_wdt_probe(struct pla
+       if (!wdt)
+               return -ENOMEM;
++      spin_lock_init(&wdt->lock);
++
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       wdt->base = devm_ioremap_resource(dev, res);
+       if (IS_ERR(wdt->base))
+@@ -311,7 +313,6 @@ static int bcm_kona_wdt_probe(struct pla
+               return ret;
+       }
+-      spin_lock_init(&wdt->lock);
+       platform_set_drvdata(pdev, wdt);
+       watchdog_set_drvdata(&bcm_kona_wdt_wdd, wdt);