[device-tree] Reserve memreserve regions whcih overlap with existing reservations.
Fixes boot on Midway. svn path=/dists/sid/linux/; revision=22087
This commit is contained in:
parent
4297292d08
commit
8b698c4c58
|
@ -18,6 +18,8 @@ linux (3.16.7-3) UNRELEASED; urgency=medium
|
||||||
* Honour stdout-path from Device Tree. (Closes: #770212)
|
* Honour stdout-path from Device Tree. (Closes: #770212)
|
||||||
* [armhf] Add udeb modules to support video and keyboard for imx6. Patch from
|
* [armhf] Add udeb modules to support video and keyboard for imx6. Patch from
|
||||||
Vagrant Cascadian (Closes: #770635)
|
Vagrant Cascadian (Closes: #770635)
|
||||||
|
* [device-tree] Reserve memreserve regions even if they partially overlap
|
||||||
|
with an existing reservation. Fixes boot on Midway.
|
||||||
|
|
||||||
-- Ben Hutchings <ben@decadent.org.uk> Sun, 09 Nov 2014 10:13:09 +0000
|
-- Ben Hutchings <ben@decadent.org.uk> Sun, 09 Nov 2014 10:13:09 +0000
|
||||||
|
|
||||||
|
|
53
debian/patches/bugfix/all/of-fdt-memblock_reserve-memreserve-regions-in-the-ca.patch
vendored
Normal file
53
debian/patches/bugfix/all/of-fdt-memblock_reserve-memreserve-regions-in-the-ca.patch
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
From a636289fb6037392c3551aeed1033576c3aef426 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
Date: Tue, 25 Nov 2014 15:05:13 +0000
|
||||||
|
Subject: [PATCH] of/fdt: memblock_reserve /memreserve/ regions in the case of
|
||||||
|
partial overlap
|
||||||
|
Origin: https://git.kernel.org/cgit/linux/kernel/git/glikely/linux.git/commit/?h=devicetree/merge&id=094cb98179f19b75acf9ff471daabf3948ce98e6
|
||||||
|
|
||||||
|
memblock_is_region_reserved() returns true in the case of a partial
|
||||||
|
overlap, meaning that the current code fails to reserve the
|
||||||
|
non-overlapping portion.
|
||||||
|
|
||||||
|
This call was introduced as part of d1552ce449eb "of/fdt: move
|
||||||
|
memreserve and dtb memory reservations into core" which went into
|
||||||
|
v3.16.
|
||||||
|
|
||||||
|
I observed this causing a Midway system with a buggy fdt (the header
|
||||||
|
declares itself to be larger than it really is) failing to boot
|
||||||
|
because the over-inflated size of the fdt was causing it to seem to
|
||||||
|
run into the swapper_pg_dir region, meaning the DT wasn't reserved.
|
||||||
|
The symptoms were failing to find an disks or network and failing to
|
||||||
|
boot.
|
||||||
|
|
||||||
|
However given the ambiguity of whether things like the initrd are
|
||||||
|
covered by /memreserve/ and similar I think it is best to also
|
||||||
|
register the region rather than just ignoring it.
|
||||||
|
|
||||||
|
Since memblock_reserve() handles overlaps just fine lets just warn and
|
||||||
|
carry on.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
Signed-off-by: Grant Likely <grant.likely@linaro.org>
|
||||||
|
Cc: Rob Herring <robh+dt@kernel.org>
|
||||||
|
Cc: stable@vger.kernel.org # v3.16+
|
||||||
|
---
|
||||||
|
drivers/of/fdt.c | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
|
||||||
|
index 379ad4f..94a8511 100644
|
||||||
|
--- a/drivers/of/fdt.c
|
||||||
|
+++ b/drivers/of/fdt.c
|
||||||
|
@@ -960,8 +960,6 @@ void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||||
|
int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
|
||||||
|
phys_addr_t size, bool nomap)
|
||||||
|
{
|
||||||
|
- if (memblock_is_region_reserved(base, size))
|
||||||
|
- return -EBUSY;
|
||||||
|
if (nomap)
|
||||||
|
return memblock_remove(base, size);
|
||||||
|
return memblock_reserve(base, size);
|
||||||
|
--
|
||||||
|
2.1.3
|
||||||
|
|
|
@ -173,6 +173,7 @@ bugfix/all/xen-netback-move-netif_napi_add-before-binding-inter.patch
|
||||||
bugfix/all/xen-netback-make-feature-rx-notify-mandatory.patch
|
bugfix/all/xen-netback-make-feature-rx-notify-mandatory.patch
|
||||||
bugfix/all/xen-netback-fix-unlimited-guest-Rx-internal-queue-an.patch
|
bugfix/all/xen-netback-fix-unlimited-guest-Rx-internal-queue-an.patch
|
||||||
bugfix/all/xen-netback-reintroduce-guest-Rx-stall-detection.patch
|
bugfix/all/xen-netback-reintroduce-guest-Rx-stall-detection.patch
|
||||||
|
bugfix/all/of-fdt-memblock_reserve-memreserve-regions-in-the-ca.patch
|
||||||
|
|
||||||
# memfd_create() & kdbus backport
|
# memfd_create() & kdbus backport
|
||||||
features/all/kdbus/mm-allow-drivers-to-prevent-new-writable-mappings.patch
|
features/all/kdbus/mm-allow-drivers-to-prevent-new-writable-mappings.patch
|
||||||
|
|
Loading…
Reference in New Issue