Re: 2.4.0-test1-ac12 oops in serial_pnp_guess_board

From: David Ford (david@kalifornia.com)
Date: Sat Jun 10 2000 - 07:34:44 EST


please use the attached patch.

-d

Diego Liziero wrote:

> Kernel 2.4.0-test1-ac12 panic at boot in serial_pnp_guess_board.
>
> Boot sequence copied by hand and passed through ksymoops
>
> [...]
> ttyS01 at 0x02f8 (irq=3) is a 16550A
> Unable to handle kernel NULL pointer dereference at virtual address 00000020
> c019a751
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[<c019a751>]
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010202
> eax: 00000000 ebx: c1149400 ecx: 00000004 edx: 00000004
> esi: 00000000 edi: c1153fc4 ebp: c1153fa0 esp: c1153f78
> ds: 0018 es: 0018 ss: 0018
> Stack: c02714c8 c1149400 c0284e47 c1149400 c1153fa0 c02714c8 c02c0ec8 c027149c
> 00000040 c11d5e00 00000000 00000000 00002400 00000001 0001c200 0001c200
> 00000000 00000000 00000000 c02852ba c02a7114 c027bfdc c0105000 00000e00
> Code: 83 7e 20 00 74 09 b8 01 00 00 00 5b 5e c3 90 8b 4e 1c 85 c9
>
> >>EIP; c019a751 <serial_pnp_guess_board+69/c8> <=====
> Code; c019a751 <serial_pnp_guess_board+69/c8>
> 00000000 <_EIP>:
> Code; c019a751 <serial_pnp_guess_board+69/c8> <=====
> 0: 83 7e 20 00 cmpl $0x0,0x20(%esi) <=====
> Code; c019a755 <serial_pnp_guess_board+6d/c8>
> 4: 74 09 je f <_EIP+0xf> c019a760 <serial_pnp_guess_board+78/c8>
> Code; c019a757 <serial_pnp_guess_board+6f/c8>
> 6: b8 01 00 00 00 mov $0x1,%eax
> Code; c019a75c <serial_pnp_guess_board+74/c8>
> b: 5b pop %ebx
> Code; c019a75d <serial_pnp_guess_board+75/c8>
> c: 5e pop %esi
> Code; c019a75e <serial_pnp_guess_board+76/c8>
> d: c3 ret
> Code; c019a75f <serial_pnp_guess_board+77/c8>
> e: 90 nop
> Code; c019a760 <serial_pnp_guess_board+78/c8>
> f: 8b 4e 1c mov 0x1c(%esi),%ecx
> Code; c019a763 <serial_pnp_guess_board+7b/c8>
> 12: 85 c9 test %ecx,%ecx
>
> Kernel panic: Attempted to kill init!
>
> Diego Liziero (pmcq@emmenet.it)
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/

--
"The difference between 'involvement' and 'commitment' is like an
eggs-and-ham breakfast: the chicken was 'involved' - the pig was
'committed'."

--- linux.old/drivers/char/serial.c Tue Jun 6 22:32:47 2000 +++ linux/drivers/char/serial.c Tue Jun 6 22:34:40 2000 @@ -4904,7 +4904,7 @@ !(check_compatible_id(dev))) return 1; - if (res->next) + if (!res || res->next) return 1; for (resa = res->alt; resa; resa = resa->alt) {


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jun 15 2000 - 21:00:21 EST