linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: netdev@vger.kernel.org
Cc: "Aymen Sghaier" <aymen.sghaier@nxp.com>,
	"Madalin Bucur" <madalin.bucur@nxp.com>,
	"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
	"Zhu Yanjun" <zyjzyj2000@gmail.com>,
	"Samuel Chessman" <chessman@tux.org>,
	"Ping-Ke Shih" <pkshih@realtek.com>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	"Horia Geantă" <horia.geanta@nxp.com>,
	linux-rdma@vger.kernel.org,
	"Rain River" <rain.1986.08.12@gmail.com>,
	"Kalle Valo" <kvalo@codeaurora.org>,
	"Ulrich Kunitz" <kune@deine-taler.de>, "Jouni Malinen" <j@w1.fi>,
	"Daniel Drake" <dsd@gentoo.org>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	"Leon Romanovsky" <leon@kernel.org>,
	linuxppc-dev@lists.ozlabs.org, linux-wireless@vger.kernel.org,
	"Li Yang" <leoyang.li@nxp.com>,
	linux-crypto@vger.kernel.org, "Jon Mason" <jdmason@kudzu.us>,
	"Saeed Mahameed" <saeedm@nvidia.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: [PATCH net-next 06/15] net: airo: Invoke airo_read_wireless_stats() directly
Date: Tue, 27 Oct 2020 23:54:45 +0100	[thread overview]
Message-ID: <20201027225454.3492351-7-bigeasy@linutronix.de> (raw)
In-Reply-To: <20201027225454.3492351-1-bigeasy@linutronix.de>

airo_get_wireless_stats() is the iw_handler_if::get_wireless_stats()
callback of this driver. This callback was not allowed to sleep until
commit a160ee69c6a46 ("wext: let get_wireless_stats() sleep") in v2.6.32.

airo still delegates the readout to a thread, which is not longer
necessary.

Invoke airo_read_wireless_stats() directly from the callback and remove
the now unused JOB_WSTATS handling.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
---
 drivers/net/wireless/cisco/airo.c | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/drivers/net/wireless/cisco/airo.c b/drivers/net/wireless/cisco/airo.c
index 87b9398b03fd4..ca423f3b6b3ea 100644
--- a/drivers/net/wireless/cisco/airo.c
+++ b/drivers/net/wireless/cisco/airo.c
@@ -1144,7 +1144,6 @@ static int airo_thread(void *data);
 static void timer_func(struct net_device *dev);
 static int airo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 static struct iw_statistics *airo_get_wireless_stats(struct net_device *dev);
-static void airo_read_wireless_stats(struct airo_info *local);
 #ifdef CISCO_EXT
 static int readrids(struct net_device *dev, aironet_ioctl *comp);
 static int writerids(struct net_device *dev, aironet_ioctl *comp);
@@ -1200,7 +1199,6 @@ struct airo_info {
 #define JOB_MIC	5
 #define JOB_EVENT	6
 #define JOB_AUTOWEP	7
-#define JOB_WSTATS	8
 #define JOB_SCAN_RESULTS  9
 	unsigned long jobs;
 	int (*bap_read)(struct airo_info*, __le16 *pu16Dst, int bytelen,
@@ -3155,8 +3153,6 @@ static int airo_thread(void *data)
 			airo_end_xmit11(dev);
 		else if (test_bit(JOB_STATS, &ai->jobs))
 			airo_read_stats(dev);
-		else if (test_bit(JOB_WSTATS, &ai->jobs))
-			airo_read_wireless_stats(ai);
 		else if (test_bit(JOB_PROMISC, &ai->jobs))
 			airo_set_promisc(ai);
 		else if (test_bit(JOB_MIC, &ai->jobs))
@@ -7732,15 +7728,12 @@ static void airo_read_wireless_stats(struct airo_info *local)
 	__le32 *vals = stats_rid.vals;
 
 	/* Get stats out of the card */
-	clear_bit(JOB_WSTATS, &local->jobs);
-	if (local->power.event) {
-		up(&local->sem);
+	if (local->power.event)
 		return;
-	}
+
 	readCapabilityRid(local, &cap_rid, 0);
 	readStatusRid(local, &status_rid, 0);
 	readStatsRid(local, &stats_rid, RID_STATS, 0);
-	up(&local->sem);
 
 	/* The status */
 	local->wstats.status = le16_to_cpu(status_rid.mode);
@@ -7783,15 +7776,10 @@ static struct iw_statistics *airo_get_wireless_stats(struct net_device *dev)
 {
 	struct airo_info *local =  dev->ml_priv;
 
-	if (!test_bit(JOB_WSTATS, &local->jobs)) {
-		/* Get stats out of the card if available */
-		if (down_trylock(&local->sem) != 0) {
-			set_bit(JOB_WSTATS, &local->jobs);
-			wake_up_interruptible(&local->thr_wait);
-		} else
-			airo_read_wireless_stats(local);
+	if (!down_interruptible(&local->sem)) {
+		airo_read_wireless_stats(local);
+		up(&local->sem);
 	}
-
 	return &local->wstats;
 }
 
-- 
2.28.0


  parent reply	other threads:[~2020-10-27 23:07 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-27 22:54 [PATCH net-next 00/15] in_interrupt() cleanup, part 2 Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 01/15] net: orinoco: Remove BUG_ON(in_interrupt/irq()) Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 02/15] net: neterion: s2io: Replace in_interrupt() for context detection Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 03/15] net: forcedeth: Replace context and lock check with a lockdep_assert() Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 04/15] net: mlx5: Replace in_irq() usage Sebastian Andrzej Siewior
2020-10-31 16:59   ` Jakub Kicinski
2020-11-02 21:41     ` Saeed Mahameed
2020-11-03 19:31     ` Saeed Mahameed
2020-10-27 22:54 ` [PATCH net-next 05/15] net: tlan: " Sebastian Andrzej Siewior
2020-10-27 22:54 ` Sebastian Andrzej Siewior [this message]
2020-10-27 22:54 ` [PATCH net-next 07/15] net: airo: Always use JOB_STATS and JOB_EVENT Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 08/15] net: airo: Replace in_atomic() usage Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 09/15] net: hostap: Remove in_atomic() check Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 10/15] net: zd1211rw: Remove in_atomic() usage Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 11/15] net: rtlwifi: Remove in_interrupt() usage in is_any_client_connect_to_ap() Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 12/15] net: rtlwifi: Remove in_interrupt() usage in halbtc_send_bt_mp_operation() Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 13/15] soc/fsl/qbman: Add an argument to signal if NAPI processing is required Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 14/15] net: dpaa: Replace in_irq() usage Sebastian Andrzej Siewior
2020-10-31 17:12   ` Jakub Kicinski
2020-11-01 23:04     ` Sebastian Andrzej Siewior
2020-10-27 22:54 ` [PATCH net-next 15/15] crypto: caam: " Sebastian Andrzej Siewior
2020-10-30 18:29 ` [PATCH net-next 00/15] in_interrupt() cleanup, part 2 Jakub Kicinski
2020-10-31 17:08 ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201027225454.3492351-7-bigeasy@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=aymen.sghaier@nxp.com \
    --cc=chessman@tux.org \
    --cc=davem@davemloft.net \
    --cc=dsd@gentoo.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=horia.geanta@nxp.com \
    --cc=j@w1.fi \
    --cc=jdmason@kudzu.us \
    --cc=kuba@kernel.org \
    --cc=kune@deine-taler.de \
    --cc=kvalo@codeaurora.org \
    --cc=leon@kernel.org \
    --cc=leoyang.li@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=madalin.bucur@nxp.com \
    --cc=netdev@vger.kernel.org \
    --cc=pkshih@realtek.com \
    --cc=rain.1986.08.12@gmail.com \
    --cc=saeedm@nvidia.com \
    --cc=tglx@linutronix.de \
    --cc=zyjzyj2000@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).