 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;
 			}
 		}
 	}

_
