Re: Request for testers: Option 3G cards, also Sierra, Huawei and Novatel

From: Vladimir Grebenschikov <vova_at_fbsd.ru>
Date: Wed, 26 Nov 2008 10:58:42 +0300
On Wed, 2008-11-05 at 13:51 +0100, Nick Hibma wrote:


> >> We've had this problem with an EDGE card from Option, and we
> basically power 
> >> down the port and power up again the card to get it back. Patches
> have been 
> >> sent to Warner to get committed.

> > Nice, are these patches attached to some PR ?
> 
> PR should appear soonish. I've just submitted the PR. See
> 
> http://www.freebsd.org/cgi/query-pr-summary.cgi?category=&severity=&priority=&class=&state=&sort=none&text=&responsible=&multitext=&originator=hibma&release=

I've tried patch from PR - result is panic on 'sysctl
dev.cbb.0.powered=0':

# kgdb /boot/kernel/kernel /var/crash/vmcore.0 
GNU gdb 6.1.1 [FreeBSD]
...

Unread portion of the kernel message buffer:
ucom0: ucomreadcb: CANCELLED
ucom0: detached
unknown: at uhub6 port 1 (addr 2) disconnected


Fatal trap 12: page fault while in kernel mode
fault virtual address	= 0x400
fault code		= supervisor read, page not present
instruction pointer	= 0x20:0xc0577c54
stack pointer	        = 0x28:0xc4b3fb44
frame pointer	        = 0x28:0xc4b3fb64
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		= 6 (cbb0 event thread)
Physical memory: 2038 MB
Dumping 180 MB: 165 149 133 117 101 85 69 53 37 21 5
...
#0  doadump () at pcpu.h:246
246		__asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt
#0  doadump () at pcpu.h:246
#1  0xc0477f29 in db_fncall (dummy1=0, dummy2=0, dummy3=-1066028784, dummy4=0xc4b3f8e8 "0'��,\004") at /usr/src/sys/ddb/db_command.c:548
#2  0xc0478321 in db_command (last_cmdp=0xc0744c1c, cmd_table=0x0, dopager=1) at /usr/src/sys/ddb/db_command.c:445
#3  0xc047847a in db_command_loop () at /usr/src/sys/ddb/db_command.c:498
#4  0xc047a2bd in db_trap (type=12, code=0) at /usr/src/sys/ddb/db_main.c:229
#5  0xc0577404 in kdb_trap (type=12, code=0, tf=0xc4b3fb04) at /usr/src/sys/kern/subr_kdb.c:534
#6  0xc06b0fcf in trap_fatal (frame=0xc4b3fb04, eva=1024) at /usr/src/sys/i386/i386/trap.c:920
#7  0xc06b1270 in trap_pfault (frame=0xc4b3fb04, usermode=0, eva=1024) at /usr/src/sys/i386/i386/trap.c:842
#8  0xc06b1bd2 in trap (frame=0xc4b3fb04) at /usr/src/sys/i386/i386/trap.c:522
#9  0xc0698d9b in calltrap () at /usr/src/sys/i386/i386/exception.s:165
#10 0xc0577c54 in kobj_delete (obj=0xc6a0e300, mtype=0xc072a4c0) at /usr/src/sys/kern/subr_kobj.c:332
#11 0xc0571ea4 in device_delete_child (dev=0xc557cd80, child=0xc6a0e300) at /usr/src/sys/kern/subr_bus.c:1657
#12 0xc0921e88 in usb_disconnect_port (up=0xc557c4b0, parent=0xc557cd80) at /usr/src/sys/modules/usb/../../dev/usb/usb_subr.c:1378
#13 0xc091fc22 in uhub_detach (self=0xc557cd80) at /usr/src/sys/modules/usb/../../dev/usb/uhub.c:575
#14 0xc0571c38 in device_detach (dev=0xc557cd80) at device_if.h:212
#15 0xc0571e41 in device_delete_child (dev=0xc557c280, child=0xc557cd80) at /usr/src/sys/kern/subr_bus.c:1651
#16 0xc0571e2c in device_delete_child (dev=0xc70ab600, child=0xc557c280) at /usr/src/sys/kern/subr_bus.c:1646
#17 0xc0989cae in ohci_pci_detach (self=0xc70ab600) at /usr/src/sys/modules/ohci/../../dev/usb/ohci_pci.c:369
#18 0xc0571c38 in device_detach (dev=0xc70ab600) at device_if.h:212
#19 0xc04b732d in cardbus_detach_card (cbdev=0xc4db1000) at /usr/src/sys/dev/cardbus/cardbus.c:237
#20 0xc04c8bc2 in cbb_event_thread (arg=0xc4d6b000) at card_if.h:95
#21 0xc052c290 in fork_exit (callout=0xc04c8a10 <cbb_event_thread>, arg=0xc4d6b000, frame=0xc4b3fd38) at /usr/src/sys/kern/kern_fork.c:815
#22 0xc0698e10 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:270
(kgdb) fr 11
#11 0xc0571ea4 in device_delete_child (dev=0xc557cd80, child=0xc6a0e300) at /usr/src/sys/kern/subr_bus.c:1657
1657		kobj_delete((kobj_t) child, M_BUS);
(kgdb) p child
$1 = 0xc6a0e300
(kgdb) p *child
$2 = {ops = 0x0, link = {tqe_next = 0x0, tqe_prev = 0xc557cd98}, devlink = {tqe_next = 0x0, tqe_prev = 0xc697de8c}, parent = 0xc557cd80, children = {
    tqh_first = 0x0, tqh_last = 0xc6a0e318}, driver = 0x0, devclass = 0x0, unit = -1, nameunit = 0x0, desc = 0x0, busy = 0, state = DS_NOTPRESENT, 
  devflags = 0, flags = 37, order = 0 '\0', pad = 0 '\0', ivars = 0xc6f01100, softc = 0x0, sysctl_ctx = {tqh_first = 0xc70dd4c0, tqh_last = 0xc70dd094}, 
  sysctl_tree = 0x0}
(kgdb) 

Looks strange for me: 
  children = { tqh_first = 0x0, tqh_last = 0xc6a0e318 }


Do I need to provide any other info from stack/kernel objects ?

> Nick
-- 
Vladimir B. Grebenschikov
vova_at_fbsd.ru
Received on Wed Nov 26 2008 - 06:58:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:38 UTC