[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