OpenCloudOS-Kernel/drivers/of
Ian Campbell 094cb98179 of/fdt: memblock_reserve /memreserve/ regions in the case of partial overlap
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 d1552ce449 "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+
2014-11-26 12:35:52 +00:00
..
testcase-data of: Fix overflow bug in string property parsing functions 2014-11-04 10:19:48 +00:00
Kconfig of/selftest: Use the resolver to fixup phandles 2014-10-04 21:24:35 +01:00
Makefile of: Introduce Device Tree resolve support. 2014-10-04 21:24:26 +01:00
address.c of/base: Fix PowerPC address parsing hack 2014-11-18 11:46:44 -06:00
base.c of: Fix overflow bug in string property parsing functions 2014-11-04 10:19:48 +00:00
device.c of: rename of_aliases_mutex to just of_mutex 2014-07-07 13:42:52 +01:00
dynamic.c of: Spelling s/stucture/structure/ 2014-11-18 11:33:10 -06:00
fdt.c of/fdt: memblock_reserve /memreserve/ regions in the case of partial overlap 2014-11-26 12:35:52 +00:00
fdt_address.c of/fdt: add FDT address translation support 2014-05-20 15:19:25 -05:00
irq.c of/irq: Fix lookup to use 'interrupts-extended' property first 2014-08-16 09:03:58 +01:00
of_mdio.c net: phy: adjust fixed_phy_register() return value 2014-10-07 13:06:45 -04:00
of_mtd.c of_mtd: Add helpers to get ECC strength and ECC step size 2014-03-10 22:42:28 -07:00
of_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-04-02 20:53:45 -07:00
of_pci.c of/pci: Add support for parsing PCI host bridge resources from DT 2014-09-30 17:08:57 -06:00
of_pci_irq.c of_pci_irq: kill useless variable in of_irq_parse_pci() 2014-05-27 12:13:34 +01:00
of_private.h of: Transactional DT support. 2014-07-23 17:29:15 -06:00
of_reserved_mem.c drivers: of: add return value to of_reserved_mem_device_init() 2014-10-29 16:33:14 -07:00
pdt.c of: device_node kobject lifecycle fixes 2014-03-19 14:58:40 +00:00
platform.c of: amba: use of_dma_configure for AMBA devices 2014-09-22 11:26:59 +01:00
resolver.c of: Introduce Device Tree resolve support. 2014-10-04 21:24:26 +01:00
selftest.c of/selftest: Fix testing when /aliases is missing 2014-11-20 15:32:49 +00:00