"cfg80211: separate internal SME implementation" causes regression for libertas wifi
NeilBrown
neilb at suse.de
Mon Aug 12 03:07:05 EDT 2013
Ping? Any hints?
Thanks,
NeilBrown
On Wed, 31 Jul 2013 10:16:39 +1000 NeilBrown <neilb at suse.de> wrote:
>
> Hi Johannes,
>
> it seems that your commit:
>
> commit ceca7b7121795ef81bd598a240d53a925662d0c1
> Author: Johannes Berg <johannes.berg at intel.com>
> Date: Thu May 16 00:55:45 2013 +0200
>
> cfg80211: separate internal SME implementation
>
> results in a regression for SDIO attached libertas wifi devices.
> In particular it hangs during suspend.
>
> In the scenario that I am testing the wifi is not active (ifconfig down).
>
> The key difference is that before your patch, cfg80211_disconnect() would
> *not* call rdev_disconnect(), because of
>
> if (wdev->sme_state == CFG80211_SME_IDLE)
> return -EINVAL;
>
> (and the state was IDLE).
>
> After your change, rdev_disconnect() is called. This leads to
> lbs_disconnect() which submits a CMD_802_11_DEAUTHENTICATE command and waits
> for the reply.
> This waits forever. My guess is that it is waiting for something that has
> been disabled by the process of entering suspend.
>
> Given that the interface isn't active, maybe it shouldn't try to disconnect,
> and it almost certainly shouldn't try to deauthenticate.
>
> I am not at all familiar with this code and was hoping you could outline how
> this sort of this was supposed to work. i.e. which part of the call chain
> should determine that the interface is sufficiently idle that nothing needs
> to happen?
>
> (this isn't the only suspend related problem I have with libertas and it
> could well be that libertas is suffering significant bit-rot. If there is a
> driver that could be seen as a good and modern prototype I could try to
> restructure libertas to match ... but I'm really hoping for an easier fix...)
>
> Thanks,
> NeilBrown
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/libertas-dev/attachments/20130812/1255bb93/attachment.sig>
More information about the libertas-dev
mailing list