Re: PROBLEM: Panic booting from USB disk in ioremap.c (line 81)
From: Randy.Dunlap
Date: Fri Feb 20 2004 - 15:13:45 EST
On Sat, 21 Feb 2004 01:37:47 +1000 "Elliot Mackenzie" <macka@xxxxxxxxxxx> wrote:
| Dear Penguins:
|
| We have a problem booting vanilla 2.6.2 and 2.6.3 kernels from a USB
| disk (Transcend JetFlash, both 128MB USB 2 and 256MB USB 1). During what
| appears to be PCI device enumeration, we get the following panic:
|
| kernel BUG at arch/i386/mm/ioremap.c:81!
| invalid operand: 0000 [#1]
| CPU: 0
| EIP: 0060:[<c011913c>] Not tainted
| EFLAGS: 00010206
| EIP is at remap_area_pages+0x34/0x1f1
| eax: c0101000 ebx: edeb0000 ecx: bc6b0000 edx: c0101ce8
| esi: 0dffc0000 edi: ce800000 ebp: 00000000 esp: cde55f48
| ds: 007b es: 007b ss: 0068
| Process swapper (pid: 1, theadinfo=cde54000 task=cdfb3900)
| Stack: c01490cd cdffb100 000000d0 c0101cec edeb0000 0dffc000 bc6b0000
| c0101ce8
| c014913d edeb0000 0dffc000 ce800000 00000000 c01193d3 ce800000
| 3f7fc000
| edeb0000 00000000 00000000 00000024 ce800000 edeafed7 c03e9249
| 0dffc000
| Call Trace:
| [<c01490cd>] __get_vm_area+0xb5/0xf3
| [<c014913d>] get_vm_area+0x32/0x36
| [<c01193d3>] __ioremap+0xda/0x104
| [<c03e9249>] sbf_init+0x167/0x180
| [<c03e46f1>] do_init_calls+0x28/0x93
| [<c012ca28>] init_workqueues+0xf/0x27
| [<c01050bc>] init+0x30/0x134
| [<c010508c>] init+0x0/0x134
| [<c0109255>] kernel_thread_helper+0x5/0xb
|
| Code: 0f 0b 51 00 8b 4d 32 c0 ba 00 e0 ff ff 21 e0 83 40 14 01 8b
| <0>Kernel panic: Attempted to kill init!
|
| This does not occur when booting from the hard disk, or when booting 2.4
| series kernels (tried 2.4.18 through 2.4.22).
|
| Hardware info: P4-based Intel Celeron, motherboard is SiS chipset.
|
| We have tried to circumvent the problem by changing the kernel PCI
| probing from "Any" to "BIOS" and "Direct".
|
| The bootloader is SysLinux (1.66), using an initrd image. Kernel
| parameters are set to run a serial console, but other than that, it's
| just kernel and initrd.
|
| Output from lspci (-vvv), /proc/cpuinfo and /proc/iomem from a working
| 2.4 kernel on the same machine is below. The kernel was compiled with
| gcc 3.2.
|
| Can anyone provide some further insight into this problem, point us in
| the right direction, or let us know if this is indeed a bug?
The call trace must be missing some helpful info, then.
I say that only because the data supplied does not look usb-device
specific.
Please apply the patch below (for 2.6.3) and reboot that kernel
with "initcall_debug" added to the kernel boot command line,
and send the resulting (failing) output back to us.
--
~Randy
applies_to: linux-263
diffstat:=
arch/i386/mm/ioremap.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletion(-)
diff -Naurp ./arch/i386/mm/ioremap.c~sbfinit ./arch/i386/mm/ioremap.c
--- ./arch/i386/mm/ioremap.c~sbfinit 2004-02-17 19:57:20.000000000 -0800
+++ ./arch/i386/mm/ioremap.c 2004-02-20 11:29:41.000000000 -0800
@@ -77,8 +77,12 @@ static int remap_area_pages(unsigned lon
phys_addr -= address;
dir = pgd_offset(&init_mm, address);
flush_cache_all();
- if (address >= end)
+ if (address >= end) {
+ printk("remap_area_pages BUG: address=0x%lx, size=0x%lx, end=0x%lx\n",
+ address, size, end);
+ dump_stack();
BUG();
+ }
spin_lock(&init_mm.page_table_lock);
do {
pmd_t *pmd;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/