|
@@ -650,14 +650,14 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
|
|
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
|
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
|
|
|
|
|
spin_lock_bh(&dev->bss_lock);
|
|
spin_lock_bh(&dev->bss_lock);
|
|
|
|
+ if (!list_empty(&bss->list)) {
|
|
|
|
+ list_del_init(&bss->list);
|
|
|
|
+ dev->bss_generation++;
|
|
|
|
+ rb_erase(&bss->rbn, &dev->bss_tree);
|
|
|
|
|
|
- list_del(&bss->list);
|
|
|
|
- dev->bss_generation++;
|
|
|
|
- rb_erase(&bss->rbn, &dev->bss_tree);
|
|
|
|
-
|
|
|
|
|
|
+ kref_put(&bss->ref, bss_release);
|
|
|
|
+ }
|
|
spin_unlock_bh(&dev->bss_lock);
|
|
spin_unlock_bh(&dev->bss_lock);
|
|
-
|
|
|
|
- kref_put(&bss->ref, bss_release);
|
|
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(cfg80211_unlink_bss);
|
|
EXPORT_SYMBOL(cfg80211_unlink_bss);
|
|
|
|
|