Re: [PATCH] x86/efi: Only pass mapped RAM regions to free_bootmem_late()

From: Alan Cox
Date: Thu Jun 05 2014 - 11:01:58 EST


On Thu, 5 Jun 2014 14:27:34 +0100
Matt Fleming <matt@xxxxxxxxxxxxxxxxx> wrote:

> From: Matt Fleming <matt.fleming@xxxxxxxxx>
>
> free_bootmem_late() expects to only be passed RAM regions that the
> kernel can access, and that have a corresponding 'struct page'. It's
> possible for regions in the EFI memory map to reside in address ranges
> for which pfn_to_page() doesn't work, for instance when running on an
> i386 system with CONFIG_HIGHMEM=n.
>
> This is in fact the case for one of Alan's machines where some of the
> EFI boot services pages live in highmem, and running a kernel without
> CONFIG_HIGHMEM enabled results in the following oops,
>
> BUG: unable to handle kernel paging request at f7f1f080
> IP: [<c17fba96>] __free_pages_bootmem+0x5a/0xb8
> *pdpt = 0000000001887001 *pde = 0000000001984067 *pte = 000000000 0000000
> Oops: 0002 [#1] SMP

No improvement, and the if case is never true 8(

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/