Page Fault - Wireless problem?
Mark Tinguely
tinguely at casselton.net
Thu Feb 23 06:36:48 PST 2006
> 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++;
More information about the freebsd-questions
mailing list