[Precise] [PATCH 02/12] x86, efi: Calling __pa() with an ioremap()ed address is invalid
Herton Ronaldo Krzesinski
herton.krzesinski at canonical.com
Sun Feb 3 23:38:23 UTC 2013
On Fri, Feb 01, 2013 at 02:45:42PM -0800, Brad Figg wrote:
> From: Matt Fleming <matt.fleming at intel.com>
>
> BugLink: http://bugs.launchpad.net/bugs/1111689
>
> If we encounter an efi_memory_desc_t without EFI_MEMORY_WB set
> in ->attribute we currently call set_memory_uc(), which in turn
> calls __pa() on a potentially ioremap'd address.
>
> On CONFIG_X86_32 this is invalid, resulting in the following
> oops on some machines:
>
> BUG: unable to handle kernel paging request at f7f22280
> IP: [<c10257b9>] reserve_ram_pages_type+0x89/0x210
> [...]
>
> Call Trace:
> [<c104f8ca>] ? page_is_ram+0x1a/0x40
> [<c1025aff>] reserve_memtype+0xdf/0x2f0
> [<c1024dc9>] set_memory_uc+0x49/0xa0
> [<c19334d0>] efi_enter_virtual_mode+0x1c2/0x3aa
> [<c19216d4>] start_kernel+0x291/0x2f2
> [<c19211c7>] ? loglevel+0x1b/0x1b
> [<c19210bf>] i386_start_kernel+0xbf/0xc8
(...)
This commit was reverted upstream, in commit
e1ad783b12ec8b69da83479c5d21a0d8180bc519, due to introducing a
regression on Macbook Air at boot as said on the changelog. Then
commit 3e8fa263a97079c74880675c451587bb6899e661 was applied later,
which says to be reimplementing this (e8c7106280a3) and thus
handling the regression.
--
[]'s
Herton
More information about the kernel-team
mailing list