aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-04-16 06:15:38 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-04-17 15:27:13 -0400
commit160002fe845218f5789a26954048592c3920ac7b (patch)
treef2462675782d61cf47ba73894c2d927630c2571b /net/wireless
parent7181d4673710888b6d7084b37b9d77ed4f4e41b2 (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')
-rw-r--r--net/wireless/scan.c2
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) {