PROBLEM: Oops when modprobing piix (2.4.21)
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 2 lines · Tuukka Toivonen
[1.] Summary:
Oops when modprobing piix (2.4.21, 2.4.20 not tested)
the attached patch fixes the problem. i just recognized that the fix is already merged into 2.4.21-pre6-ac1.
greetings,
wilfried
Quoted 98 lines
[2.] Full description:
When piix support is compiled as module, and I type
modprobe piix
I get immediately kernel oops message. modprobe crashes with segmentation fault.[3.] Keywords:
piix, ide, dma[4.] Kernel version:
Linux version 2.4.21[5.] Output of Oops:
ksymoops 2.4.5 on i586 2.4.21. Options used
-V (default)
-k/proc/ksyms(default)
-l/proc/modules(default)
-o/lib/modules/2.4.21/(default)
-m/boot/vmlinuz-2.4.21.map(specified)Jul 5 01:21:01 datazone kernel: Unable to handle kernel paging request at virtual address 83a52264 Jul 5 01:21:01 datazone kernel: c01f1e52 Jul 5 01:21:01 datazone kernel: *pde = 00000000 Jul 5 01:21:01 datazone kernel: Oops: 0002 Jul 5 01:21:01 datazone kernel: CPU: 0 Jul 5 01:21:01 datazone kernel: EIP: 0010:[<c01f1e52>] Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 Jul 5 01:21:01 datazone kernel: EFLAGS: 00010282 Jul 5 01:21:01 datazone kernel: eax: c3812884 ebx: c1397e46 ecx: 00000cf8 edx: 00000000 Jul 5 01:21:01 datazone kernel: esi: c023f9e0 edi: c10fc800 ebp: c1397e48 esp: c1397e30 Jul 5 01:21:01 datazone kernel: ds: 0018 es: 0018 ss: 0018 Jul 5 01:21:01 datazone kernel: Process modprobe (pid: 2467, stackpage=c1397000) Jul 5 01:21:01 datazone kernel: Stack: c01788a8 c023f9e0 c023f9e0 c38128a2 c381f000 00058bdf c1397e84 c0178c5a Jul 5 01:21:01 datazone kernel: c10fc800 c3812884 c023f9e0 c10fc800 c10fc800 c3812e00 00000000 00000000 Jul 5 01:21:01 datazone kernel: 00000001 00000000 00000000 e11db874 00000000 c1397ea0 c0178ccd c1397e9c Jul 5 01:21:01 datazone kernel: Call Trace: [<c01788a8>] [<c38128a2>] [<c0178c5a>] [<c3812884>] [<c3812e00>] Jul 5 01:21:01 datazone kernel: [<c0178ccd>] [<c3812884>] [<c011e4be>] [<c3811f18>] [<c3812884>] [<c3811f54>] Jul 5 01:21:01 datazone kernel: [<c3812884>] [<c3812c10>] [<c017c17e>] [<c3812c10>] [<c3812e00>] [<c017c1e7>] Jul 5 01:21:01 datazone kernel: [<c3812e00>] [<c3812e00>] [<c0178d1f>] [<c3812e00>] [<c3812012>] [<c3812e00>] Jul 5 01:21:01 datazone kernel: [<c01127f5>] [<c0127fa2>] [<c3811060>] [<c0106c93>] Jul 5 01:21:01 datazone kernel: Code: 30 34 30 30 30 0a 23 64 65 66 69 6e 65 20 4d 41 53 4b 5f 31Quoted 11 lines
Quoted 10 lines
EIP;
c01f1e52<ide_get_or_set_dma_base+2/148> <=====eax;
c3812884<[piix]piix_pci_info+90/3c0>
ebx;c1397e46<_end+11541ba/35bc374>
ecx;00000cf8Before first symbol
esi;c023f9e0<ide_hwifs+0/2c88>
edi;c10fc800<_end+eb8b74/35bc374>
ebp;c1397e48<_end+11541bc/35bc374>
esp;c1397e30<_end+11541a4/35bc374>Trace;
c01788a8<ide_hwif_setup_dma+48/f0>
Trace;c38128a2<[piix]piix_pci_info+ae/3c0>
Trace;c0178c5a<do_ide_setup_pci_device+222/27c>
Trace;c3812884<[piix]piix_pci_info+90/3c0>
Trace;c3812e00<[piix]driver+0/3f>
Trace;c0178ccd<ide_setup_pci_device+19/20>
Trace;c3812884<[piix]piix_pci_info+90/3c0>
Trace;c011e4be<do_anonymous_page+e2/100>
Trace;c3811f18<[piix]init_setup_piix+10/14>
Trace;c3812884<[piix]piix_pci_info+90/3c0>
Trace;c3811f54<[piix]piix_init_one+38/50>
Trace;c3812884<[piix]piix_pci_info+90/3c0>
Trace;c3812c10<[piix]piix_pci_tbl+54/244>
Trace;c017c17e<pci_announce_device+42/68>
Trace;c3812c10<[piix]piix_pci_tbl+54/244>
Trace;c3812e00<[piix]driver+0/3f>
Trace;c017c1e7<pci_register_driver+43/60>
Trace;c3812e00<[piix]driver+0/3f>
Trace;c3812e00<[piix]driver+0/3f>
Trace;c0178d1f<ide_pci_register_driver+17/5c>
Trace;c3812e00<[piix]driver+0/3f>
Trace;c3812012<[piix]piix_ide_init+12/18>
Trace;c3812e00<[piix]driver+0/3f>
Trace;c01127f5<sys_init_module+5a9/664>
Trace;c0127fa2<__alloc_pages+3e/14c>
Trace;c3811060<[piix]__module_description+0/0>
Trace;c0106c93<system_call+33/40>Code;
c01f1e52<ide_get_or_set_dma_base+2/148>
00000000 <_EIP>:
Code;c01f1e52<ide_get_or_set_dma_base+2/148> <=====
0: 30 34 30 xor %dh,(%eax,%esi,1) <=====
Code;c01f1e55<ide_get_or_set_dma_base+5/148>
3: 30 30 xor %dh,(%eax)
Code;c01f1e57<ide_get_or_set_dma_base+7/148>
5: 0a 23 or (%ebx),%ah
Code;c01f1e59<ide_get_or_set_dma_base+9/148>
7: 64 65 66 69 6e 65 20 imul $0x4d20,%fs:%gs:0x65(%esi),%bp
Code;c01f1e60<ide_get_or_set_dma_base+10/148>
e: 4d
Code;c01f1e61<ide_get_or_set_dma_base+11/148>
f: 41 inc %ecx
Quoted 8 lines
Code;
c01f1e62<ide_get_or_set_dma_base+12/148>
10: 53 push %ebx
Code;c01f1e63<ide_get_or_set_dma_base+13/148>
11: 4b dec %ebx
Code;c01f1e64<ide_get_or_set_dma_base+14/148>
12: 5f pop %edi
Code;c01f1e65<ide_get_or_set_dma_base+15/148>
13: 31 00 xor %eax,(%eax)
drivers/ide/setup-pci.c renamed from drivers/ide/setup-pci.c.orig +1 -1
@@ -172,7 +172,7 @@ static int ide_setup_pci_baseregs (struc* is already in DMA mode we check and enforce IDE simplex rules. */ -static unsigned long __init ide_get_or_set_dma_base (ide_hwif_t *hwif) +static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif) {unsigned long dma_base =0 ;struct pci_dev *dev = hwif->pci_dev;