diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 345ef1c967685ad60f6cf863f6dc4253fabb3945..87fc56bc4f1e7aba67f5a5e9e4b89fe4ea3d5444 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -1753,6 +1753,8 @@ cfg80211_bss_update(struct cfg80211_registered_device *rdev,
 
 		if (rdev->bss_entries >= bss_entries_limit &&
 		    !cfg80211_bss_expire_oldest(rdev)) {
+			if (!list_empty(&new->hidden_list))
+				list_del(&new->hidden_list);
 			kfree(new);
 			goto drop;
 		}