Re: [CFT][PATCH] 2.6.4-rc1 remove x86 boot page tables

From: Eric W. Biederman
Date: Wed Mar 03 2004 - 02:31:42 EST


"Tolentino, Matthew E" <matthew.e.tolentino@xxxxxxxxx> writes:

> > I have rewritten and compiled tested the boot_ioremap code but I don't
> > have a configuration to test it. This effects the EFI code and the
> > numa srat code. It might be worth replacing boot_ioremap with __va()
> > to reduce the amount of error checking necessary.
>
> I just blindly applied this patch and tried it on an x86 EFI system
> with no luck. It's not mapping correctly for some reason. I'll look
> at the problem closer in a bit.


I know what the worst of the problem is. efi_stub.S assumes there are
identity mapped pages, which my patch removes.

However there is at least this chunk of code:
/*
* Show what we know for posterity
*/
c16 = (efi_char16_t *) boot_ioremap(efi.systab->fw_vendor, 2);
if (c16) {
for (i = 0; i < sizeof(vendor) && *c16; ++i)
vendor[i] = *c16++;
vendor[i] = '\0';
} else
printk(KERN_ERR PFX "Could not map the firmware vendor!\n");

printk(KERN_INFO PFX "EFI v%u.%.02u by %s \n",
efi.systab->hdr.revision >> 16,
efi.systab->hdr.revision & 0xffff, vendor);

That is broken anyway. boot_ioremap only supports one mapping at
a time and you are using the efi.systab mapping after removing it.

And the it is coded efi_enter_virtual_mode is not even optional. Ugh.

Eric
-
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/