From c6427be92b44fd1729633ad59e5cf49dafbb80fc Mon Sep 17 00:00:00 2001 From: Andriy Voskoboinyk Date: Sun, 28 Feb 2016 23:48:34 +0000 Subject: [PATCH] net80211: remove redundant locking. All callers of ieee80211_promisc()/ieee80211_allmulti() (ieee80211_vap_detach(), ieee80211_ioctl(), ap_start() and ap_end()) already hold the com_lock while calling them. Tested with RTL8188EU, STA mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5475 --- sys/net80211/ieee80211.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c index e727cb67469..d64667ec300 100644 --- a/sys/net80211/ieee80211.c +++ b/sys/net80211/ieee80211.c @@ -714,7 +714,8 @@ ieee80211_promisc(struct ieee80211vap *vap, bool on) (vap->iv_caps & IEEE80211_C_TDMA) == 0))) return; - IEEE80211_LOCK(ic); + IEEE80211_LOCK_ASSERT(ic); + if (on) { if (++ic->ic_promisc == 1) ieee80211_runtask(ic, &ic->ic_promisc_task); @@ -724,7 +725,6 @@ ieee80211_promisc(struct ieee80211vap *vap, bool on) if (--ic->ic_promisc == 0) ieee80211_runtask(ic, &ic->ic_promisc_task); } - IEEE80211_UNLOCK(ic); } /* @@ -736,7 +736,8 @@ ieee80211_allmulti(struct ieee80211vap *vap, bool on) { struct ieee80211com *ic = vap->iv_ic; - IEEE80211_LOCK(ic); + IEEE80211_LOCK_ASSERT(ic); + if (on) { if (++ic->ic_allmulti == 1) ieee80211_runtask(ic, &ic->ic_mcast_task); @@ -746,7 +747,6 @@ ieee80211_allmulti(struct ieee80211vap *vap, bool on) if (--ic->ic_allmulti == 0) ieee80211_runtask(ic, &ic->ic_mcast_task); } - IEEE80211_UNLOCK(ic); } /*