[PATCH, take 3] libertas: convert RSSI to a direct command

Marcelo Tosatti mtosatti at redhat.com
Thu Apr 10 11:43:41 EDT 2008


On Tue, Apr 01, 2008 at 08:48:48AM +0200, Holger Schurig wrote:
> > Won't this call block? You can't block in the get_wireless
> > handler (it holds the rtnl lock). See wext_handle_ioctl.
> 
> Yes, this blocks.
> 
> So you mean that when I cannot get a current RSSI value at this 
> time I have to re-use some old value?

All I mean is that get_wireless_stats should not schedule() because it
holds the rtnl_lock. You get ugly hangs doing that.

>   The older code used this 
> schema:
> 
> 
> when associated:
>    get rssi in-the-background and store it away
> 
> when AdHoc network created:
>    get rssi in-the-background and store it away
> 
> 
> in lbs_get_wireless_stats()
>    use stored away RSSI value
>    get rssi in-the-background and store it away
>    
> 
> The problem with this scheme is that the "stored away RSSI" might 
> be an hour ago. So the first call to to get the wireless stats 
> gives you back a blatant lie.
> 
> Do you see a way around this?

Either live with the fact that you need to query the driver a few times
for a reliable result or add a timer to periodically update RSSI.



More information about the libertas-dev mailing list