Index: chromeos/compat-wireless/net/wireless/scan.c |
diff --git a/chromeos/compat-wireless/net/wireless/scan.c b/chromeos/compat-wireless/net/wireless/scan.c |
index e4ed81d09a7ee1e419612e1ecc66e48f544b53ab..832276416eaeb9ae2c4a0960a407adcac001ddd6 100644 |
--- a/chromeos/compat-wireless/net/wireless/scan.c |
+++ b/chromeos/compat-wireless/net/wireless/scan.c |
@@ -660,14 +660,14 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) |
bss = container_of(pub, struct cfg80211_internal_bss, pub); |
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); |
- |
- kref_put(&bss->ref, bss_release); |
} |
EXPORT_SYMBOL(cfg80211_unlink_bss); |