arch/i386/kernel/efi.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) diff -puN arch/i386/kernel/efi.c~ia32-efi-support-warning-fixes arch/i386/kernel/efi.c --- 25/arch/i386/kernel/efi.c~ia32-efi-support-warning-fixes 2003-10-03 22:43:42.000000000 -0700 +++ 25-akpm/arch/i386/kernel/efi.c 2003-10-03 22:51:03.000000000 -0700 @@ -441,18 +441,19 @@ void __init efi_enter_virtual_mode(void) if (md->attribute & EFI_MEMORY_RUNTIME) { md->virt_addr = - (u64) ioremap((unsigned long) md->phys_addr, - (unsigned long) (md->num_pages - << EFI_PAGE_SHIFT)); + (unsigned long)ioremap(md->phys_addr, + md->num_pages << EFI_PAGE_SHIFT); if (!(unsigned long) md->virt_addr) { printk(KERN_ERR PFX "ioremap of md: 0x%lX failed \n", (unsigned long) md->phys_addr); } if (((unsigned long)md->phys_addr <= (unsigned long)efi_phys.systab) && ((unsigned long)efi_phys.systab < md->phys_addr + ((unsigned long) md->num_pages << EFI_PAGE_SHIFT))) { - efi.systab = (efi_system_table_t *) - ((md->virt_addr - md->phys_addr) + - (u64)efi_phys.systab); + unsigned long addr; + + addr = md->virt_addr - md->phys_addr + + (unsigned long)efi_phys.systab; + efi.systab = (efi_system_table_t *)addr; } } } _