cfg80211: fix BSS double-unlinking
authorJohannes Berg <johannes.berg@intel.com>
Wed, 6 Oct 2010 19:18:04 +0000 (21:18 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Dec 2010 21:32:06 +0000 (13:32 -0800)
commit4b99d7de1c22088154e6d5a0035bd1cd73ff4e5e
tree16a2afc5077faae37de4edffce3b5e8c8b4e90b5
parentf8245147e382c014a80726efe54e83f2dab85ac2
cfg80211: fix BSS double-unlinking

commit 3207390a8b58bfc1335750f91cf6783c48ca19ca upstream.

When multiple interfaces are actively trying
to associate with the same BSS, they may both
find that the BSS isn't there and then try to
unlink it. This can cause errors since the
unlinking code can't currently deal with items
that have already been unlinked.

Normally this doesn't happen as most people
don't try to use multiple station interfaces
that associate at the same time too.

Fix this by using the list entry as a flag to
see if the item is still on a list.

Reported-by: Ben Greear <greearb@candelatech.com>
Tested-by: Hun-Kyi Wynn <hkwynn@candelatech.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/wireless/scan.c