lkml.org 
[lkml]   [2004]   [Feb]   [21]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateFri, 20 Feb 2004 21:31:57 -0800
From"Randy.Dunlap" <>
SubjectRE: 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/
\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008