Search Linux Wireless

Re: [PATCH] orinoco: take the driver lock in the rx tasklet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andrey Borzenkov wrote:
> On 07 January 2009 03:23:55 David Kilroy wrote:
>> Fix the warning reproduced below.
>>
>> We add to rx_list in interrupt context and remove elements in tasklet
>> context. While removing elements we need to prevent the interrupt
>> modifying the list.
>>
>> Note that commit 31afcef385bb8bf528c6fbe05b359af9f456f02a did not
>> preserve locking semantics on what is now orinoco_rx.
>>
>> This patch reinstates the locking semantics and ensures it covers
>> rx_list as well. 
> [...]
>> --- a/drivers/net/wireless/orinoco/orinoco.c
>> +++ b/drivers/net/wireless/orinoco/orinoco.c
>> @@ -1613,6 +1613,16 @@ static void orinoco_rx_isr_tasklet(unsigned
> [...]
>> +	if (orinoco_lock(priv, &flags) != 0)
>> +		return;
>>
> 
> this effectively serializes rx list processing with the rest of driver 
> (specifically orinoco_interrupt) eliminating any benefit from doing it 
> in separate tasklet. It is more simple and less confusing to just revert 
> commit 31afcef385bb8bf528c6fbe05b359af9f456f02a then.

[adding orinoco-devel, who I missed of the original patch submission]

The move to the RX tasklet was not motivated by improved performance,
but the requirements of the crypto library (can't call from interrupt)
and the need to do MIC calculations on RX.

Unless the crypto routines have changed, reverting that commit will
break WPA support.



Regards,

Dave.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux