Michael Buesch wrote:
> On Friday 24 July 2009 16:48:49 Larry Finger wrote:
>> Francesco,
>>
>> Sorry, but I missed a warning about DMA queue overflow that was being
>> logged as follows:
> 
> Can you printk the value of free_slots(), when this happens?

I have a printk in place, but that warning has not happened again.

I made the following changes:

(1) I put guard words around meta in struct b43_dma_ring, and around
the skb in struct b43_dmadesc_meta. These were checked in
b43_dma_handle_txstatus() and were OK. Whatever is setting meta->skb
to NULL is specific in writing that location.

(2) I replaced the BUG_ON when meta->skb is NULL with printk
statements that dump elements of the ring and meta structs. At least I
get a chance to interrogate the internal data. Furthermore, I can get
the wireless back by unloading and reloading b43 without rebooting.
The dumped values are as follows:

b43: meta data: skb              (null)
                dmaaddr          00000000986d50bc
                is_last_fragment 1
b43: ring data: nr_slots       256
                used_slots     45
                current_slot   65
                index          1
                tx             1
                max_used_slots 256

Unfortunately, all of these look reasonable - no smoking guns.

Any suggestions on other values to dump?

Larry
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to