Messages in this thread Patch in this message | | | Date | Fri, 20 Feb 2004 21:31:57 -0800 | From | "Randy.Dunlap" <> | Subject | RE: PROBLEM: Panic booting from USB disk in ioremap.c (line 81) |
| |
As enumerated below: | Calling initcall 0xc03f7e19 pcibios_init | Calling initcall 0xc03f819c netdev_init | Calling initcall 0xc03f1e7c chr_dev_init | Calling initcall 0xc03e7084 i8259_init_sysfs | Calling initcall 0xc03e7101 init_timer_sysfs | Calling initcall 0xc03e90e2 sbf_init
I still don't see how USB enters into it, but please try the patch below to see if I'm on the right track or not. It looks like sbf_init() is finding an invalid ACPI RSDT length field. This patch will telll us if that's the case or not.
-- ~Randy
// Linux 2.6.3 // handle a garbage RSDT length field;
diffstat:= arch/i386/kernel/bootflag.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletion(-)
diff -Naurp ./arch/i386/kernel/bootflag.c~sbfinit ./arch/i386/kernel/bootflag.c --- ./arch/i386/kernel/bootflag.c~sbfinit 2004-02-17 19:59:06.000000000 -0800 +++ ./arch/i386/kernel/bootflag.c 2004-02-20 21:26:51.000000000 -0800 @@ -193,7 +193,8 @@ static int __init sbf_init(void) if(i>0xFFFE0) return 0; - + printk(KERN_ERR "SBF: remap rsdt to 0x%x, len=0x%x\n", + rsdtbase, rsdtlen); rsdt = ioremap(rsdtbase, rsdtlen); if(rsdt == 0) return 0; @@ -208,6 +209,11 @@ static int __init sbf_init(void) { rsdtlen = i; iounmap(rsdt); + if (rsdtlen > 0x1000) { /* arbitrary for now */ + printk(KERN_ERR "SBF: invalid rsdtlen = 0x%x\n", + rsdtlen); + return 0; + } rsdt = ioremap(rsdtbase, rsdtlen); if(rsdt == 0) return 0; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |