소스 검색

cfg80211: don't BUG_ON BSS struct issues

There's no need to stop the machine, just leak
the BSS entry if there's an issue with its hold
counter when freeing.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Johannes Berg 13 년 전
부모
커밋
b629ea3db4
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      net/wireless/scan.c

+ 4 - 2
net/wireless/scan.c

@@ -26,6 +26,10 @@ static void bss_release(struct kref *ref)
 	struct cfg80211_internal_bss *bss;
 
 	bss = container_of(ref, struct cfg80211_internal_bss, ref);
+
+	if (WARN_ON(atomic_read(&bss->hold)))
+		return;
+
 	if (bss->pub.free_priv)
 		bss->pub.free_priv(&bss->pub);
 
@@ -34,8 +38,6 @@ static void bss_release(struct kref *ref)
 	if (bss->proberesp_ies_allocated)
 		kfree(bss->pub.proberesp_ies);
 
-	BUG_ON(atomic_read(&bss->hold));
-
 	kfree(bss);
 }