From: Sascha Hauer <s.hauer@pengutronix.de>
To: Brian Norris <briannorris@chromium.org>
Cc: Francesco Dolcini <francesco@dolcini.it>,
Johannes Berg <johannes.berg@intel.com>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
David Lin <yu-hao.lin@nxp.com>,
kernel@pengutronix.de
Subject: Re: [PATCH wireless-next v5 10/10] wifi: mwifiex: drop asynchronous init waiting code
Date: Wed, 26 Mar 2025 11:59:43 +0100 [thread overview]
Message-ID: <Z-PeH1ChtvvYPE7_@pengutronix.de> (raw)
In-Reply-To: <Z-MtVj4NpcLuZxJv@google.com>
Hi Brian,
On Tue, Mar 25, 2025 at 03:25:26PM -0700, Brian Norris wrote:
> Hi Sascha,
>
> On Mon, Mar 24, 2025 at 02:24:11PM +0100, Sascha Hauer wrote:
> > Historically all commands sent to the mwifiex driver have been
> > asynchronous. The different commands sent during driver initialization
> > have been queued at once and only the final command has been waited
> > for being ready before finally starting the driver.
> >
> > This has been changed in 7bff9c974e1a ("mwifiex: send firmware
> > initialization commands synchronously"). With this the initialization
> > is finished once the last mwifiex_send_cmd_sync() (now
> > mwifiex_send_cmd()) has returned. This makes all the code used to
> > wait for the last initialization command to be finished unnecessary,
> > so it's removed in this patch.
> >
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>
> There are a few things that confuse me in here. See below.
>
> > ---
> > drivers/net/wireless/marvell/mwifiex/cmdevt.c | 16 ----------------
> > drivers/net/wireless/marvell/mwifiex/init.c | 18 +++++-------------
> > drivers/net/wireless/marvell/mwifiex/main.c | 25 +++----------------------
> > drivers/net/wireless/marvell/mwifiex/main.h | 6 ------
> > drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 6 ------
> > drivers/net/wireless/marvell/mwifiex/util.c | 18 ------------------
> > 6 files changed, 8 insertions(+), 81 deletions(-)
> >
> ...
> > diff --git a/drivers/net/wireless/marvell/mwifiex/init.c b/drivers/net/wireless/marvell/mwifiex/init.c
> > index 8b61e45cd6678..fc58ca1a60ca8 100644
> > --- a/drivers/net/wireless/marvell/mwifiex/init.c
> > +++ b/drivers/net/wireless/marvell/mwifiex/init.c
> > @@ -487,7 +487,6 @@ int mwifiex_init_fw(struct mwifiex_adapter *adapter)
> > int ret;
> > struct mwifiex_private *priv;
> > u8 i, first_sta = true;
> > - int is_cmd_pend_q_empty;
> >
> > adapter->hw_status = MWIFIEX_HW_STATUS_INITIALIZING;
> >
> > @@ -509,7 +508,6 @@ int mwifiex_init_fw(struct mwifiex_adapter *adapter)
> > }
> > if (adapter->mfg_mode) {
> > adapter->hw_status = MWIFIEX_HW_STATUS_READY;
> > - ret = -EINPROGRESS;
>
> Why are you dropping this line? To be fair, I'm not sure I understand
> all the manufacturing-mode support anyway, but I equally don't
> understand why you're dropping this.
Short version: This change is correct. I started a lengthy explanation
why I did this, but realized that it's better to split this patch
further up to make it more clear. I'll create a new series from this
patch.
>
> > } else {
> > for (i = 0; i < adapter->priv_num; i++) {
> > ret = mwifiex_sta_init_cmd(adapter->priv[i],
> > @@ -521,18 +519,12 @@ int mwifiex_init_fw(struct mwifiex_adapter *adapter)
> > }
> > }
> >
> > - spin_lock_bh(&adapter->cmd_pending_q_lock);
> > - is_cmd_pend_q_empty = list_empty(&adapter->cmd_pending_q);
>
> I believe your reasoning around the synchronous command logic, but would
> it help to include any sort of fail-safe here for the future? Something
> like:
>
> WARN_ON(!list_empty(&adapter->cmd_pending_q));
>
> ? Or am I being overly cautious?
mwifiex_init_fw() might be called from some obscure firmware command
time out path, so let's add it just to be sure. Better safe than sorry.
>
> > - spin_unlock_bh(&adapter->cmd_pending_q_lock);
> > - if (!is_cmd_pend_q_empty) {
> > - /* Send the first command in queue and return */
> > - if (mwifiex_main_process(adapter) != -1)
> > - ret = -EINPROGRESS;
>
> You need to update the function comments now that you're dropping this.
Will do.
> > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > index f2e9f582ae818..199a8e52e5b16 100644
> > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> > @@ -2418,11 +2418,5 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
> > ret = mwifiex_send_cmd(priv, HostCmd_CMD_11N_CFG,
> > HostCmd_ACT_GEN_SET, 0, &tx_cfg, true);
> >
> > - if (init) {
>
> The 'init' function parameter is no longer used. Can you drop it from
> the function signature?
Good point. I'll make an extra patch from this though to not further
obfuscate this patch.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2025-03-26 10:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-24 13:24 [PATCH wireless-next v5 00/10] mwifiex: cleanups Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 01/10] wifi: mwifiex: deduplicate code in mwifiex_cmd_tx_rate_cfg() Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 02/10] wifi: mwifiex: use adapter as context pointer for mwifiex_hs_activated_event() Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 03/10] wifi: mwifiex: drop unnecessary initialization Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 04/10] wifi: mwifiex: make region_code_mapping_t const Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 05/10] wifi: mwifiex: pass adapter to mwifiex_dnld_cmd_to_fw() Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 06/10] wifi: mwifiex: simplify mwifiex_setup_ht_caps() Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 07/10] wifi: mwifiex: fix indention Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 08/10] wifi: mwifiex: make locally used function static Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 09/10] wifi: mwifiex: move common settings out of switch/case Sascha Hauer
2025-03-24 13:24 ` [PATCH wireless-next v5 10/10] wifi: mwifiex: drop asynchronous init waiting code Sascha Hauer
2025-03-25 22:25 ` Brian Norris
2025-03-26 10:59 ` Sascha Hauer [this message]
2025-03-25 22:26 ` [PATCH wireless-next v5 00/10] mwifiex: cleanups Brian Norris
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=Z-PeH1ChtvvYPE7_@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=briannorris@chromium.org \
--cc=francesco@dolcini.it \
--cc=johannes.berg@intel.com \
--cc=kernel@pengutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=yu-hao.lin@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.