[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.

Ivo




More information about the users mailing list