2023-04-16 12:42:56

by Hector Martin

[permalink] [raw]
Subject: [PATCH 0/2] brcmfmac: Demote some kernel errors to info

brcmfmac has some messages that are KERN_ERR even though they are
harmless. This is spooking and confusing people, because they end up
being the *only* kernel messages on their boot console with common
error-only printk levels (at least on Apple Macs).

Then, when their system does not boot to a GUI for some other reason,
the brcmfmac errors are the only thing on their TTY (which also does
not show a login prompt on tty1 in typical systemd setups) and they are
thoroughly confused into believing their problem has something to do
with brcmfmac.

Seriously, I've had 10 or so people mention this by now, and multiple
confused Reddit threads about it. Let's fix it.

Signed-off-by: Hector Martin <[email protected]>
---
Hector Martin (2):
wifi: brcmfmac: Demote vendor-specific attach/detach messages to info
wifi: brcmfmac: Demote p2p unknown frame error to info (once)

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 4 ++--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)
---
base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
change-id: 20230416-brcmfmac-noise-2bae83836f2d

Best regards,
--
Hector Martin <[email protected]>


2023-04-16 12:43:12

by Hector Martin

[permalink] [raw]
Subject: [PATCH 1/2] wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

People are getting spooked by brcmfmac errors on their boot console.
There's no reason for these messages to be errors.

Cc: [email protected]
Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
Signed-off-by: Hector Martin <[email protected]>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
index ac3a36fa3640..c83bc435b257 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
@@ -12,13 +12,13 @@

static int brcmf_bca_attach(struct brcmf_pub *drvr)
{
- pr_err("%s: executing\n", __func__);
+ pr_info("%s: executing\n", __func__);
return 0;
}

static void brcmf_bca_detach(struct brcmf_pub *drvr)
{
- pr_err("%s: executing\n", __func__);
+ pr_info("%s: executing\n", __func__);
}

const struct brcmf_fwvid_ops brcmf_bca_ops = {
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
index b75652ba9359..e39d66b07831 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
@@ -12,13 +12,13 @@

static int brcmf_cyw_attach(struct brcmf_pub *drvr)
{
- pr_err("%s: executing\n", __func__);
+ pr_info("%s: executing\n", __func__);
return 0;
}

static void brcmf_cyw_detach(struct brcmf_pub *drvr)
{
- pr_err("%s: executing\n", __func__);
+ pr_info("%s: executing\n", __func__);
}

const struct brcmf_fwvid_ops brcmf_cyw_ops = {
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
index 02de99818efa..133d274b4025 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
@@ -12,13 +12,13 @@

static int brcmf_wcc_attach(struct brcmf_pub *drvr)
{
- pr_err("%s: executing\n", __func__);
+ pr_info("%s: executing\n", __func__);
return 0;
}

static void brcmf_wcc_detach(struct brcmf_pub *drvr)
{
- pr_err("%s: executing\n", __func__);
+ pr_info("%s: executing\n", __func__);
}

const struct brcmf_fwvid_ops brcmf_wcc_ops = {

--
2.40.0

2023-04-16 12:43:33

by Hector Martin

[permalink] [raw]
Subject: [PATCH 2/2] wifi: brcmfmac: Demote p2p unknown frame error to info (once)

This one is also spooking people when they see it in their boot console.
It's not fatal, so it shouldn't really be a noisy error.

Fixes: 18e2f61db3b7 ("brcmfmac: P2P action frame tx.")
Signed-off-by: Hector Martin <[email protected]>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
index d4492d02e4ea..071b0706d137 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
@@ -1793,8 +1793,8 @@ bool brcmf_p2p_send_action_frame(struct brcmf_cfg80211_info *cfg,
/* do not configure anything. it will be */
/* sent with a default configuration */
} else {
- bphy_err(drvr, "Unknown Frame: category 0x%x, action 0x%x\n",
- category, action);
+ bphy_info_once(drvr, "Unknown Frame: category 0x%x, action 0x%x\n",
+ category, action);
return false;
}


--
2.40.0

2023-04-16 12:47:37

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH 1/2] wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

On Sun, Apr 16, 2023 at 09:42:17PM +0900, Hector Martin wrote:
> People are getting spooked by brcmfmac errors on their boot console.
> There's no reason for these messages to be errors.
>
> Cc: [email protected]
> Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
> Signed-off-by: Hector Martin <[email protected]>
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
> 3 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
> index ac3a36fa3640..c83bc435b257 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
> @@ -12,13 +12,13 @@
>
> static int brcmf_bca_attach(struct brcmf_pub *drvr)
> {
> - pr_err("%s: executing\n", __func__);
> + pr_info("%s: executing\n", __func__);

Why are these here at all? Please just remove these entirely, you can
get this information normally with ftrace.

Or, just delete these functions, why have empty ones at all?

thanks,

greg k-h

2023-04-17 05:35:12

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 2/2] wifi: brcmfmac: Demote p2p unknown frame error to info (once)

Hector Martin <[email protected]> writes:

> This one is also spooking people when they see it in their boot console.
> It's not fatal, so it shouldn't really be a noisy error.
>
> Fixes: 18e2f61db3b7 ("brcmfmac: P2P action frame tx.")
> Signed-off-by: Hector Martin <[email protected]>
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
> index d4492d02e4ea..071b0706d137 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
> @@ -1793,8 +1793,8 @@ bool brcmf_p2p_send_action_frame(struct brcmf_cfg80211_info *cfg,
> /* do not configure anything. it will be */
> /* sent with a default configuration */
> } else {
> - bphy_err(drvr, "Unknown Frame: category 0x%x, action 0x%x\n",
> - category, action);
> + bphy_info_once(drvr, "Unknown Frame: category 0x%x, action 0x%x\n",
> + category, action);
> return false;
> }

What about changing this to a debug message so that it's not shown at
all in normal operation? I don't see what value this message gives to a
user.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2023-04-17 05:35:12

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

Greg KH <[email protected]> writes:

> On Sun, Apr 16, 2023 at 09:42:17PM +0900, Hector Martin wrote:
>
>> People are getting spooked by brcmfmac errors on their boot console.
>> There's no reason for these messages to be errors.
>>
>> Cc: [email protected]
>> Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
>> Signed-off-by: Hector Martin <[email protected]>
>> ---
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
>> 3 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git
>> a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> index ac3a36fa3640..c83bc435b257 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> @@ -12,13 +12,13 @@
>>
>> static int brcmf_bca_attach(struct brcmf_pub *drvr)
>> {
>> - pr_err("%s: executing\n", __func__);
>> + pr_info("%s: executing\n", __func__);
>
> Why are these here at all? Please just remove these entirely, you can
> get this information normally with ftrace.
>
> Or, just delete these functions, why have empty ones at all?

Yeah, deleting these sound like the best idea.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2023-04-17 07:58:59

by Hector Martin

[permalink] [raw]
Subject: Re: [PATCH 1/2] wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

On 16/04/2023 21.46, Greg KH wrote:
> On Sun, Apr 16, 2023 at 09:42:17PM +0900, Hector Martin wrote:
>> People are getting spooked by brcmfmac errors on their boot console.
>> There's no reason for these messages to be errors.
>>
>> Cc: [email protected]
>> Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
>> Signed-off-by: Hector Martin <[email protected]>
>> ---
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
>> 3 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> index ac3a36fa3640..c83bc435b257 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>> @@ -12,13 +12,13 @@
>>
>> static int brcmf_bca_attach(struct brcmf_pub *drvr)
>> {
>> - pr_err("%s: executing\n", __func__);
>> + pr_info("%s: executing\n", __func__);
>
> Why are these here at all? Please just remove these entirely, you can
> get this information normally with ftrace.
>
> Or, just delete these functions, why have empty ones at all?

This is a new WIP code path that Arend introduced which currently
deliberately does nothing (but is intended to hold firmware vendor
specific init in the future). So we can just drop the messages, but I
don't think we want to remove the code entirely.

- Hector

2023-04-17 08:10:52

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH 1/2] wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

On Mon, Apr 17, 2023 at 04:54:33PM +0900, Hector Martin wrote:
> On 16/04/2023 21.46, Greg KH wrote:
> > On Sun, Apr 16, 2023 at 09:42:17PM +0900, Hector Martin wrote:
> >> People are getting spooked by brcmfmac errors on their boot console.
> >> There's no reason for these messages to be errors.
> >>
> >> Cc: [email protected]
> >> Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
> >> Signed-off-by: Hector Martin <[email protected]>
> >> ---
> >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
> >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
> >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
> >> 3 files changed, 6 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
> >> index ac3a36fa3640..c83bc435b257 100644
> >> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
> >> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
> >> @@ -12,13 +12,13 @@
> >>
> >> static int brcmf_bca_attach(struct brcmf_pub *drvr)
> >> {
> >> - pr_err("%s: executing\n", __func__);
> >> + pr_info("%s: executing\n", __func__);
> >
> > Why are these here at all? Please just remove these entirely, you can
> > get this information normally with ftrace.
> >
> > Or, just delete these functions, why have empty ones at all?
>
> This is a new WIP code path that Arend introduced which currently
> deliberately does nothing (but is intended to hold firmware vendor
> specific init in the future). So we can just drop the messages, but I
> don't think we want to remove the code entirely.

Why have empty functions that do nothing? If you want to put
vendor-specific anything in here, add it when that is needed. We don't
like having dead code laying around in the kernel if at all possible.

thanks,

greg k-h

2023-04-17 08:14:52

by Hector Martin

[permalink] [raw]
Subject: Re: [PATCH 1/2] wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

On 17/04/2023 17.06, Greg KH wrote:
> On Mon, Apr 17, 2023 at 04:54:33PM +0900, Hector Martin wrote:
>> On 16/04/2023 21.46, Greg KH wrote:
>>> On Sun, Apr 16, 2023 at 09:42:17PM +0900, Hector Martin wrote:
>>>> People are getting spooked by brcmfmac errors on their boot console.
>>>> There's no reason for these messages to be errors.
>>>>
>>>> Cc: [email protected]
>>>> Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
>>>> Signed-off-by: Hector Martin <[email protected]>
>>>> ---
>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 4 ++--
>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 4 ++--
>>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 4 ++--
>>>> 3 files changed, 6 insertions(+), 6 deletions(-)
>>>>
>>>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>>>> index ac3a36fa3640..c83bc435b257 100644
>>>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>>>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
>>>> @@ -12,13 +12,13 @@
>>>>
>>>> static int brcmf_bca_attach(struct brcmf_pub *drvr)
>>>> {
>>>> - pr_err("%s: executing\n", __func__);
>>>> + pr_info("%s: executing\n", __func__);
>>>
>>> Why are these here at all? Please just remove these entirely, you can
>>> get this information normally with ftrace.
>>>
>>> Or, just delete these functions, why have empty ones at all?
>>
>> This is a new WIP code path that Arend introduced which currently
>> deliberately does nothing (but is intended to hold firmware vendor
>> specific init in the future). So we can just drop the messages, but I
>> don't think we want to remove the code entirely.
>
> Why have empty functions that do nothing? If you want to put
> vendor-specific anything in here, add it when that is needed. We don't
> like having dead code laying around in the kernel if at all possible.

That's a question for Arend. But I think we should not be blocking this
fix on that. I'll send a v2 that just removes the messages.


- Hector