+static bool __init kernel_resides_in_range(phys_addr_t base, u64 length)
+{
+ int i;
+ struct memblock_type *reserved =&memblock.reserved;
+ struct memblock_region *region;
+ phys_addr_t start, end;
+
+ for (i = 0; i< reserved->cnt; i++) {
+ region =&reserved->regions[i];
+
+ if (region->flags != MEMBLK_FLAGS_DEFAULT)
+ continue;
+
+ start = region->base;
+ end = region->base + region->size;
+ if (end<= base || start>= base + length)
+ continue;
+
+ return true;
+ }
+
+ return false;
+}
This being in acpi/osl.c is rather weird. Overall, the acpi and
memblock parts don't seem very well split. It'd best if acpi just
indicates which regions are hotpluggable and the rest is handled by
x86 boot or memblock code as appropriate.