>  Unread portion of the kernel message buffer:
>  ural0: could not transmit buffer: SHORT_XFER
>
>
>  Fatal trap 12: page fault while in kernel mode
>  fault virtual address   = 0x4
>  fault code              = supervisor read, page not present
>  instruction pointer     = 0x20:0xc0667091
>  stack pointer           = 0x28:0xd33e4c00
>  frame pointer           = 0x28:0xd33e4c0c
>  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         = 32 (irq21: uhci0 uhci1+)
>  trap number             = 12
>  panic: page fault

I am not a USB/Ralink expert, but it the node can be removed
mid-transmission elsewhere (ural_free_tx_list) on input errors.
I don't know about threading issues that would require extra locking
as well:

in sys/dev/usb/
--- if_ural.c.orig      Sun Jan 29 08:16:36 2006
+++ if_ural.c   Thu Feb 23 08:30:36 2006
@@ -881,8 +881,10 @@
 
        m_freem(data->m);
        data->m = NULL;
-       ieee80211_free_node(data->ni);
-       data->ni = NULL;
+       if (data->ni != NULL) {
+               ieee80211_free_node(data->ni);
+               data->ni = NULL;
+       }
 
        sc->tx_queued--;
        ifp->if_opackets++;
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to