usb/144423: if_run panic with USB-N13

PseudoCylon moonlightakkiy at yahoo.ca
Fri Mar 5 11:40:08 UTC 2010


----- Original Message ----

> From: Hans Petter Selasky <hselasky at c2i.net>
> To: PseudoCylon <moonlightakkiy at yahoo.ca>
> Cc: bug-followup at freebsd.org; jhanna at pangolin-systems.com; freebsd-usb at freebsd.org; freebsd-gnats-submit at freebsd.org
> Sent: Fri, March 5, 2010 2:42:41 AM
> Subject: Re: usb/144423: if_run panic with USB-N13
> 
> On Friday 05 March 2010 10:31:35 PseudoCylon wrote:
> > >The files seem a little far from the current I am running, I just used
> > >the updates to the usbdevs file and the unlock-lock around the firmware
> > > load in if_run.c.
> > 
> > Yes, there are some bits added to support RT3572 chipsets. It would be
> >  greately appreciated if you try that file if it's not too mutch trouble.
> > 
> > >The ASUS-N13 does work when a child wlan device is created with it,
> > >but if just "ifconfig run0 up" is done there is a page fault. I do
> > >not know if that is expected. This occurs with or without runfw.ko
> > >being loaded beforehand.
> > 
> > Yes, "ifconfig run0 up" will cause page fault. The wlanN interface is
> >  should be created as an instance of the parent interface and used for
> >  actual communication. This is new feature to 8.0 and 9-current. My
> >  understanding is that if you create wlan and "ifconfig *wlan0* up", it
> >  works, but if you "ifconfig *run0* up", it causes panic. (Of cource
> >  without *. I'm trying to enphasize the point in plain text messeage.) That
> >  is what should happen. (Actually, result of "ifconfig *run0* up" is
> >  undefined.) "run0" should only be used when creating wlan.
> > 
> > If "ifconfig *wlan0* ..." is causing problem, please let us know.
> > 
> 
> What is the backtrace of the panic?
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_warn() at witness_warn+0x2c2
trap() at trap+0x2f5
calltrap() at calltrap+0x8
--- trap 0xc, rip = 0xffffffff80c5cfd7, rsp = 0xffffff8021f76880, rbp = 0xffffff8021f768c0 ---
run_stop() at run_stop+0x67
run_init_locked() at run_init_locked+0x33
run_ioctl() at run_ioctl+0xad
ifioctl() at ifioctl+0xde4
kern_ioctl() at kern_ioctl+0xc5
ioctl() at ioctl+0xf0
syscall() at syscall+0x1af
Xfast_syscall() at Xfast_syscall+0xe1
--- syscall (54, FreeBSD ELF64, ioctl), rip = 0x800b8286c, rsp = 0x7fffffffe2f8, rbp = 0x7fffffffe300 ---

There are number of places refers uninitialized value in run_stop() and run_init() if vap hasn't created, so it will cause page fault. I can move those instructions to other places (maybe vap_delete). It won't panic but device won't work without vap.


      __________________________________________________________________
Ask a question on any topic and get answers from real people. Go to Yahoo! Answers and share what you know at http://ca.answers.yahoo.com


More information about the freebsd-usb mailing list