linux/drivers/of
Michael Ellerman 9eb8cd2b07 of: Fix comparison of reserved memory regions
In order to check for overlapping reserved memory regions, we first need
to sort the array of memory regions. This is implemented using sort(),
and a custom comparison function __rmem_cmp().

Unfortunatley __rmem_cmp() doesn't work in all cases. Because the two
base values are phys_addr_t, they may be u64 on some platforms, in which
case subtracting one from the other and then (implicitly) casting to int
does not give us the -ve/0/+ve value we need.

This leads to incorrect reports about overlaps, eg:

  ibm,slw-image@1ffe600000 (0x0000001ffe600000--0x0000001ffe700000) overlaps with
  ibm,firmware-allocs-memory@1000000000 (0x0000001000000000--0x0000001000dc0200)

Fix it by just doing the standard double if and return 0 logic.

Fixes: ae1add247b ("of: Check for overlap in reserved memory regions")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Rob Herring <robh@kernel.org>
2015-11-30 17:56:44 -06:00
..
unittest-data of/unittest: replace 'selftest' with 'unittest' 2015-03-25 00:53:29 -05:00
address.c PCI: of: Add 64-bit address recognition without LPAE support 2015-10-13 13:30:37 -05:00
base.c of: simplify arch_find_n_match_cpu_physical_id() function 2015-10-30 13:04:19 -05:00
device.c of: to support binding numa node to specified device in devicetree 2015-10-17 22:11:50 -07:00
dynamic.c of/dynamic: Fix test for PPC_PSERIES 2015-06-05 10:39:28 +09:00
fdt.c drivers: of: removing assignment of 0 to static variable 2015-10-30 12:04:36 -05:00
fdt_address.c
irq.c DeviceTree updates for 4.4: 2015-11-06 12:17:09 -08:00
Kconfig of: add config option to enable building of all dtbs 2015-10-27 16:12:13 -05:00
Makefile of: clean-up unnecessary libfdt include paths 2015-06-04 20:16:47 -05:00
of_mdio.c of_mdio: fix MDIO phy device refcounting 2015-09-24 23:04:52 -07:00
of_mtd.c
of_net.c of_net: factor out repetitive code from of_get_mac_address() 2015-03-29 08:56:17 +01:00
of_pci.c More power management and ACPI updates for v4.4-rc1 2015-11-12 11:50:33 -08:00
of_pci_irq.c of_pci_irq: Silence bogus "of_irq_parse_pci() failed ..." messages. 2015-09-17 14:46:11 -05:00
of_private.h of: Refactor __of_node_alloc() into __of_node_dup() 2014-11-24 22:24:41 +00:00
of_reserved_mem.c of: Fix comparison of reserved memory regions 2015-11-30 17:56:44 -06:00
overlay.c of/overlay: add missing of_node_put 2015-10-22 09:35:51 -05:00
pdt.c of: Eliminate of_allnodes list 2014-11-04 13:29:38 +00:00
platform.c of/platform: add missing of_node_put 2015-10-22 09:26:44 -05:00
resolver.c of/resolver: Switch to new local fixups format. 2014-11-24 22:24:50 +00:00
unittest.c of/unittest: add missing of_node_put 2015-10-22 09:26:28 -05:00