>>> On 19.05.14 at 22:46, <daniel.kiper@xxxxxxxxxx> wrote: > On Mon, May 19, 2014 at 02:30:45PM +0100, Jan Beulich wrote: >> >>> On 16.05.14 at 22:41, <daniel.kiper@xxxxxxxxxx> wrote: >> > @@ -457,6 +460,21 @@ void __init efi_free_boot_services(void) >> > efi_unmap_memmap(); >> > } >> > >> > +static void __init __iomem *efi_early_ioremap(resource_size_t phys_addr, >> > + unsigned long size) >> > +{ >> > + if (efi_enabled(EFI_DIRECT)) >> > + return early_ioremap(phys_addr, size); >> > + >> > + return (__force void __iomem *)phys_addr; >> >> Now that surely needs some explanation: I can't see how this can >> ever be correct, Xen or not being completely irrelevant. > > I hope that efi_enabled(EFI_DIRECT) is obvious. However, in case of > !efi_enabled(EFI_DIRECT) some structures are created artificially > and they live in virtual address space. So that is why they should > not be mapped. If you wish I could add relevant comment here. That would be the very minimum I suppose. But I wonder whether you wouldn't be better off storing their physical addresses in the first place (and then decide whether you can stay with early_ioremap() or want/need to use early_memremap() if !EFI_DIRECT). Jan -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html