Crash when USB modem unplugged

Jake Scott jake at poptart.org
Mon Sep 13 15:58:18 PDT 2004


I can consistently crash my 5.2.1-RELEASE system by unplugging the USB 
ADSL modem when the system is up.  Is this something that one "just 
shouldn't do" - or should the OS cope with it?

The gdb output is shown below:

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0xc47a7c60
fault code              = supervisor write, page not present
instruction pointer     = 0x8:0xc046eaf0
stack pointer           = 0x10:0xd9afca8c
frame pointer           = 0x10:0xd9afcaa8
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 915 (pppoa2)
trap number             = 12
panic: page fault
syncing disks, buffers remaining... 3842 3842 panic: free locked buf
Uptime: 9d19h55m47s
3842 3842 3842 3842 3842 3842 3842 3842 3842 3842 3842 3842 3842 ad2: 
WARNING - WRITE_DMA interrupt was seen but timeout fired LBA=2228607
ad0: WARNING - WRITE_DMA interrupt was seen but timeout fired LBA=2490879
3842 3842 3842 3842 3842 ad2: WARNING - WRITE_DMA interrupt was seen but 
timeout fired LBA=2228607
ad0: WARNING - WRITE_DMA interrupt was seen but timeout fired LBA=2490879

giving up on 2067 buffers
Uptime: 9d19h56m2s
ad2: WARNING - WRITE_DMA interrupt was seen but taskqueue stalled 
LBA=2228607
ad0: WARNING - WRITE_DMA interrupt was seen but taskqueue stalled 
LBA=2490879
Dumping 511 MB
 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 
320 336 352 368 384 400 416 432 448 464 480 496
---
Reading symbols from 
/usr/obj/usr/src/sys/Fruity/modules/usr/src/sys/modules/vinum/vinum.ko.debug...done.
Loaded symbols for 
/usr/obj/usr/src/sys/Fruity/modules/usr/src/sys/modules/vinum/vinum.ko.debug
Reading symbols from 
/usr/obj/usr/src/sys/Fruity/modules/usr/src/sys/modules/acpi/acpi.ko.debug...done.
Loaded symbols for 
/usr/obj/usr/src/sys/Fruity/modules/usr/src/sys/modules/acpi/acpi.ko.debug
Reading symbols from /boot/kernel/ipl.ko...done.
Loaded symbols for /boot/kernel/ipl.ko
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
240             dumping++;
(kgdb) list 
*0xc046eaf0                                                        
0xc046eaf0 is in ugenclose (/usr/src/sys/dev/usb/ugen.c:559).
554                     DPRINTFN(5, ("ugenclose: endpt=%d dir=%d sce=%p\n",
555                                  endpt, dir, sce));
556
557                     usbd_abort_pipe(sce->pipeh);
558                     usbd_close_pipe(sce->pipeh);
559                     sce->pipeh = NULL;
560
561                     switch (sce->edesc->bmAttributes & UE_XFERTYPE) {
562                     case UE_INTERRUPT:
563                             ndflush(&sce->q, sce->q.c_cc);
(kgdb) bt
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
#1  0xc04cd49f in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:372
#2  0xc04cd838 in panic () at /usr/src/sys/kern/kern_shutdown.c:550
#3  0xc077b9b0 in complete_rqe (bp=0x0)
    at /usr/src/sys/dev/vinum/vinuminterrupt.c:232
#4  0xc077b89a in complete_rqe (bp=0x0)
    at /usr/src/sys/dev/vinum/vinuminterrupt.c:201
#5  0xc051ca81 in bufdone (bp=0xc5a4fc24) at 
/usr/src/sys/kern/vfs_bio.c:3131
#6  0xc051c8ae in bufdonebio (bp=0x0) at /usr/src/sys/kern/vfs_bio.c:3067
#7  0xc051c67c in biodone (bp=0xc5a4fc24) at 
/usr/src/sys/kern/vfs_bio.c:2991
#8  0xc048ff6a in g_dev_done (bp2=0xc5c0ea18)
    at /usr/src/sys/geom/geom_dev.c:359
#9  0xc051c67c in biodone (bp=0xc5a4fc24) at 
/usr/src/sys/kern/vfs_bio.c:2991
#10 0xc0492d18 in g_io_schedule_up (tp=0xc4727140)
    at /usr/src/sys/geom/geom_io.c:402
#11 0xc0492f38 in g_up_procbody () at /usr/src/sys/geom/geom_kern.c:92
#12 0xc04b68a0 in fork_exit (callout=0xc0492f10 <g_up_procbody>, arg=0x0,
    frame=0x0) at /usr/src/sys/kern/kern_fork.c:793

Any more info required, let me know.


J>




More information about the freebsd-current mailing list