Commit 31bf0f43 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

x86: Log resource clipping for E820 regions



When remove_e820_regions() clips a resource because an E820 region overlaps
it, log a note in dmesg to add in debugging.

Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 93d256cd
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
#include <linux/ioport.h>
#include <linux/printk.h>
#include <asm/e820/api.h>

static void resource_clip(struct resource *res, resource_size_t start,
@@ -28,6 +29,7 @@ static void remove_e820_regions(struct resource *avail)
	int i;
	struct e820_entry *entry;
	u64 e820_start, e820_end;
	struct resource orig = *avail;

	for (i = 0; i < e820_table->nr_entries; i++) {
		entry = &e820_table->entries[i];
@@ -35,6 +37,11 @@ static void remove_e820_regions(struct resource *avail)
		e820_end = entry->addr + entry->size - 1;

		resource_clip(avail, e820_start, e820_end);
		if (orig.start != avail->start || orig.end != avail->end) {
			pr_info("clipped %pR to %pR for e820 entry [mem %#010Lx-%#010Lx]\n",
				 &orig, avail, e820_start, e820_end);
			orig = *avail;
		}
	}
}