From: Kalle Valo <kvalo@kernel.org>
To: Vladislav Efanov <VEfanov@ispras.ru>
Cc: Johannes Berg <johannes@sipsolutions.net>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
"John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, lvc-project@linuxtesting.org
Subject: Re: [PATCH] cfg80211: Convert WARN_ON() to warning message
Date: Thu, 26 Sep 2024 18:58:37 +0300 [thread overview]
Message-ID: <874j629zki.fsf@kernel.org> (raw)
In-Reply-To: <20240926133446.25445-1-VEfanov@ispras.ru> (Vladislav Efanov's message of "Thu, 26 Sep 2024 16:34:38 +0300")
Vladislav Efanov <VEfanov@ispras.ru> writes:
> syzkaller got the following warning:
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 9992 at net/wireless/ibss.c:36 __cfg80211_ibss
>
> This warning is the result of the race condition between the following
> events:
>
> event1 event2 event3
> __ieee80211_sta_join_ibss() | |
> creates new cgf80211_bss | |
> structure. | |
> Calls cfg80211_ibss_joined() | |
> which will scheduled | |
> new event_work. | |
> ieee80211_ibss_disconnect() |
> is called due to connection |
> dropped/ibss leaves to |
> remove cfg80211_bss structure. |
> event_work starts.
> __cfg80211_ibss_joined()
> is called and WARNING is
> detected due to
> cfg80211_bss structure was
> removed by event2.
>
> It is a normal situation when connection is dropped during handshaking.
> So it looks reasonable to replace WARN_ON() with warning message to
> prevent false alarm.
>
> Found by Linux Verification Center (linuxtesting.org) with syzkaller.
> Fixes: 04a773ade068 ("cfg80211/nl80211: add IBSS API")
> Signed-off-by: Vladislav Efanov <VEfanov@ispras.ru>
> ---
> net/wireless/ibss.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c
> index e6fdb0b8187d..93c8bee12bdf 100644
> --- a/net/wireless/ibss.c
> +++ b/net/wireless/ibss.c
> @@ -34,8 +34,10 @@ void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
> bss = cfg80211_get_bss(wdev->wiphy, channel, bssid, NULL, 0,
> IEEE80211_BSS_TYPE_IBSS, IEEE80211_PRIVACY_ANY);
>
> - if (WARN_ON(!bss))
> + if (!bss) {
> + pr_warn("cfg80211: cfg80211_bss with bssid %s not found.\n", bssid);
> return;
> + }
If it's a normal case (disclaimer: didn't investigate that) the warning
message could be more descriptive. I suspect the user is just confused
after seeing that.
Also 'wifi:' missing from subject.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
next prev parent reply other threads:[~2024-09-26 15:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-26 13:34 [PATCH] cfg80211: Convert WARN_ON() to warning message Vladislav Efanov
2024-09-26 15:58 ` Kalle Valo [this message]
2024-09-26 19:51 ` Johannes Berg
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=874j629zki.fsf@kernel.org \
--to=kvalo@kernel.org \
--cc=VEfanov@ispras.ru \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=johannes@sipsolutions.net \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=lvc-project@linuxtesting.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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.