[rt2x00-users] [PATCH 1/8] rt2x00: Convert rt2x00 to use threaded interrupts

Ivo Van Doorn ivdoorn at gmail.com
Fri Jul 9 00:33:36 AEST 2010

On Thu, Jul 8, 2010 at 3:58 PM, Helmut Schaa
<helmut.schaa at googlemail.com> wrote:
> Am Donnerstag 08 Juli 2010 schrieb Ivo Van Doorn:
>> >> > Any good ideas how to fix this?
>> >>
>> >> Well we could either move USB callback handling to a bottom half as well,
>> >> but I am not sure how much work that would be. Otherwise we could do:
>> >>
>> >> if (rt2x00_is_usb(rt2x00dev))
>> >>     ieee80211_rx_irqsave()
>> >> else
>> >>     ieee80211_rx_ni()
>> >
>> > That would be the quick'n'dirty solution ;)
>> >
>> > And we would need the same handling in rt2x00lib_txdone for ieee80211_tx_status
>> > and dev_kfree_skb_irq, right?

Well actually for SKBs, we should use dev_kfree_skb_any(). This is
safe in any context.
It is already used on most places, but oddly enough some of the URB
callback handlers
are using dev_kfree_skb() without problems....

>> Well that is actually the odd part, rt2800usb isn't complaining about
>> ieee80211_tx_status,
>> it only printed the error for the RX path..
> Strange ...

Well the TX path remained free of any error, but I guess that might be
because of
the lack of WARN_ON statements which are present in the RX path. For now I guess
the usage of dev_kfree_skb_any and the if (rt2x00_is_usb()) usage
would solve the problem,
until we can decide if we need some bottom half handler for the USB
callback functions as well.


More information about the users mailing list