diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-04-16 06:15:38 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-04-17 15:27:13 -0400 |
commit | 160002fe845218f5789a26954048592c3920ac7b (patch) | |
tree | f2462675782d61cf47ba73894c2d927630c2571b /net/wireless/scan.c | |
parent | 7181d4673710888b6d7084b37b9d77ed4f4e41b2 (diff) |
cfg80211: copy hold when replacing BSS
When we receive a probe response frame we can replace the
BSS struct in our list -- but if that struct is held then
we need to hold the new one as well.
We really should fix this completely and not replace the
struct, but this is a bandaid for now.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/scan.c')
-rw-r--r-- | net/wireless/scan.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index 2a00e362f5fe..4c77669275eb 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c | |||
@@ -364,6 +364,8 @@ cfg80211_bss_update(struct cfg80211_registered_device *dev, | |||
364 | list_replace(&found->list, &res->list); | 364 | list_replace(&found->list, &res->list); |
365 | rb_replace_node(&found->rbn, &res->rbn, | 365 | rb_replace_node(&found->rbn, &res->rbn, |
366 | &dev->bss_tree); | 366 | &dev->bss_tree); |
367 | /* XXX: workaround */ | ||
368 | res->hold = found->hold; | ||
367 | kref_put(&found->ref, bss_release); | 369 | kref_put(&found->ref, bss_release); |
368 | found = res; | 370 | found = res; |
369 | } else if (found) { | 371 | } else if (found) { |