x86: reserve SLIT
save the SLIT, in case we are using fixmap to read it, and that fixmap could be cleared by others. Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Cc: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
69a7704d7a
commit
f302a5bbe5
|
@ -100,7 +100,19 @@ static __init inline int srat_disabled(void)
|
|||
/* Callback for SLIT parsing */
|
||||
void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
|
||||
{
|
||||
acpi_slit = slit;
|
||||
unsigned length;
|
||||
unsigned long phys;
|
||||
|
||||
length = slit->header.length;
|
||||
phys = find_e820_area(0, max_pfn_mapped<<PAGE_SHIFT, length,
|
||||
PAGE_SIZE);
|
||||
|
||||
if (phys == -1L)
|
||||
panic(" Can not save slit!\n");
|
||||
|
||||
acpi_slit = __va(phys);
|
||||
memcpy(acpi_slit, slit, length);
|
||||
reserve_early(phys, phys + length, "ACPI SLIT");
|
||||
}
|
||||
|
||||
/* Callback for Proximity Domain -> LAPIC mapping */
|
||||
|
|
Loading…
Reference in New Issue