ARM kernel can get RAM regions three ways:

o from FDT;
o from EFI;
o from Linux Boot API (ATAG).
U-Boot may pass RAM info all that 3 ways simultaneously.
We do select between FDT and EFI, but not for ATAG.
So this is not problem fix, but correctness check.

MFC after:	2 weeks
This commit is contained in:
Aleksandr Rybalko 2019-08-31 21:28:06 +00:00
parent 24612bfd1f
commit c96574f39c

View File

@ -264,6 +264,8 @@ insert_region(struct region *regions, size_t rcnt, vm_paddr_t addr,
ep = regions + rcnt;
for (i = 0, rp = regions; i < rcnt; ++i, ++rp) {
if (rp->addr == addr && rp->size == size) /* Pure dup. */
return (rcnt);
if (flags == rp->flags) {
if (addr + size == rp->addr) {
rp->addr = addr;