From: Greg Kroah-Hartman Date: Mon, 3 Jul 2017 12:28:42 +0000 (+0200) Subject: 3.18-stable patches X-Git-Tag: v3.18.60~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c86e7c0114b4efcee46c3818a60eda5eb2e32a4b;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch --- 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 index 00000000000..a38a7c04a3a --- /dev/null +++ b/queue-3.18/arm-8685-1-ensure-memblock-limit-is-pmd-aligned.patch @@ -0,0 +1,56 @@ +From 9e25ebfe56ece7541cd10a20d715cbdd148a2e06 Mon Sep 17 00:00:00 2001 +From: Doug Berger +Date: Thu, 29 Jun 2017 18:41:36 +0100 +Subject: ARM: 8685/1: ensure memblock-limit is pmd-aligned + +From: Doug Berger + +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 +Suggested-by: Mark Rutland +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + } diff --git a/queue-3.18/series b/queue-3.18/series index e33391cd218..81df034db04 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -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 index 00000000000..ee2a52b0e82 --- /dev/null +++ b/queue-3.18/watchdog-bcm281xx-fix-use-of-uninitialized-spinlock.patch @@ -0,0 +1,44 @@ +From fedf266f9955d9a019643cde199a2fd9a0259f6f Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Thu, 27 Apr 2017 18:02:32 -0700 +Subject: watchdog: bcm281xx: Fix use of uninitialized spinlock. + +From: Eric Anholt + +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 +Reviewed-by: Florian Fainelli +Reviewed-by: Guenter Roeck +Signed-off-by: Guenter Roeck +Signed-off-by: Wim Van Sebroeck +Signed-off-by: Greg Kroah-Hartman + +--- + 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); +