diff -ruN linux-2.4.18/arch/i386/kernel/dmi_scan.c linux-2.4.18.early-dmi-scan/arch/i386/kernel/dmi_scan.c --- linux-2.4.18/arch/i386/kernel/dmi_scan.c Tue Feb 26 13:26:56 2002 +++ linux-2.4.18.early-dmi-scan/arch/i386/kernel/dmi_scan.c Tue Feb 26 13:35:08 2002 @@ -9,6 +9,7 @@ #include #include #include +#include unsigned long dmi_broken; int is_sony_vaio_laptop; @@ -51,7 +52,7 @@ u8 *data; int i=1; - buf = ioremap(base, len); + buf = bt_ioremap(base, len); if(buf==NULL) return -1; @@ -83,7 +84,7 @@ data+=2; i++; } - iounmap(buf); + bt_iounmap(buf, len); return 0; } @@ -155,7 +156,7 @@ return; if (dmi_ident[slot]) return; - dmi_ident[slot] = kmalloc(strlen(p)+1, GFP_KERNEL); + dmi_ident[slot] = alloc_bootmem(strlen(p)+1); if(dmi_ident[slot]) strcpy(dmi_ident[slot], p); else @@ -731,12 +732,9 @@ } } -static int __init dmi_scan_machine(void) +void __init dmi_scan_machine(void) { int err = dmi_iterate(dmi_decode); if(err == 0) dmi_check_blacklist(); - return err; } - -module_init(dmi_scan_machine); diff -ruN linux-2.4.18/arch/i386/kernel/setup.c linux-2.4.18.early-dmi-scan/arch/i386/kernel/setup.c --- linux-2.4.18/arch/i386/kernel/setup.c Tue Feb 26 13:26:56 2002 +++ linux-2.4.18.early-dmi-scan/arch/i386/kernel/setup.c Tue Feb 26 13:35:08 2002 @@ -155,6 +155,7 @@ unsigned char aux_device_present; extern void mcheck_init(struct cpuinfo_x86 *c); +extern void dmi_scan_machine(void); extern int root_mountflags; extern char _text, _etext, _edata, _end; @@ -1042,6 +1043,7 @@ conswitchp = &dummy_con; #endif #endif + dmi_scan_machine(); } static int cachesize_override __initdata = -1;