diff mbox

[v3] brcmfmac: Do not print the firmware version as an error

Message ID 20170308082321.4755-1-hdegoede@redhat.com (mailing list archive)
State Superseded
Delegated to: Kalle Valo
Headers show

Commit Message

Hans de Goede March 8, 2017, 8:23 a.m. UTC
Using pr_err for things which are not errors is a bad idea. E.g. it
will cause the plymouth bootsplash screen to drop back to the text
console so that the user can see the error, which is not what we
normally want to happen.

Instead add a new brcmf_info macro and use that.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
-Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
Changes in v3:
-Use do { } while (0) around macro
-Rebase on top of v4.11-rc1
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 2 +-
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h  | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

Comments

Joe Perches March 8, 2017, 4:34 p.m. UTC | #1
On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
> Using pr_err for things which are not errors is a bad idea. E.g. it
> will cause the plymouth bootsplash screen to drop back to the text
> console so that the user can see the error, which is not what we
> normally want to happen.
> 
> Instead add a new brcmf_info macro and use that.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
> Changes in v3:
> -Use do { } while (0) around macro

why?  Single statement macros do not need a do/while

> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
[]
> @@ -59,6 +59,10 @@ void __brcmf_err(const char *func, const char *fmt, ...);
>  	} while (0)
>  
>  #if defined(DEBUG) || defined(CONFIG_BRCM_TRACING)
> +
> +/* For debug/tracing purposes treat info messages as errors */
> +#define brcmf_info brcmf_err
> +
>  __printf(3, 4)
>  void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...);
>  #define brcmf_dbg(level, fmt, ...)				\
> @@ -77,6 +81,11 @@ do {								\
>  
>  #else /* defined(DEBUG) || defined(CONFIG_BRCM_TRACING) */
>  
> +#define brcmf_info(fmt, ...)						\
> +	do {								\
> +		pr_info("%s: " fmt, __func__, ##__VA_ARGS__);		\
> +	} while (0)

#define brcmf_info(fmt, ...)
	pr_info("%s: " fmt, __func__, ##__VA_ARGS__)

> +
>  #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__)

I think the separate defines for DEBUG/CONFIG_BRCM_TRACING
are not necessary.
Hans de Goede March 8, 2017, 4:57 p.m. UTC | #2
Hi,

On 08-03-17 17:34, Joe Perches wrote:
> On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
>> Using pr_err for things which are not errors is a bad idea. E.g. it
>> will cause the plymouth bootsplash screen to drop back to the text
>> console so that the user can see the error, which is not what we
>> normally want to happen.
>>
>> Instead add a new brcmf_info macro and use that.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> Changes in v2:
>> -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
>> Changes in v3:
>> -Use do { } while (0) around macro
>
> why?  Single statement macros do not need a do/while

Because Arend ask me to during review of v2.

>
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
> []
>> @@ -59,6 +59,10 @@ void __brcmf_err(const char *func, const char *fmt, ...);
>>  	} while (0)
>>
>>  #if defined(DEBUG) || defined(CONFIG_BRCM_TRACING)
>> +
>> +/* For debug/tracing purposes treat info messages as errors */
>> +#define brcmf_info brcmf_err
>> +
>>  __printf(3, 4)
>>  void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...);
>>  #define brcmf_dbg(level, fmt, ...)				\
>> @@ -77,6 +81,11 @@ do {								\
>>
>>  #else /* defined(DEBUG) || defined(CONFIG_BRCM_TRACING) */
>>
>> +#define brcmf_info(fmt, ...)						\
>> +	do {								\
>> +		pr_info("%s: " fmt, __func__, ##__VA_ARGS__);		\
>> +	} while (0)
>
> #define brcmf_info(fmt, ...)
> 	pr_info("%s: " fmt, __func__, ##__VA_ARGS__)
>
>> +
>>  #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
>
> I think the separate defines for DEBUG/CONFIG_BRCM_TRACING
> are not necessary.

When tracing we want the message logging the firmware version
to show up in the trace, which requires calling __brcmf_err()

Regards,

Hans
Joe Perches March 8, 2017, 5:53 p.m. UTC | #3
On Wed, 2017-03-08 at 17:57 +0100, Hans de Goede wrote:
> Hi,

And hello back to you.

> On 08-03-17 17:34, Joe Perches wrote:
> > On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
> > > Using pr_err for things which are not errors is a bad idea. E.g. it
> > > will cause the plymouth bootsplash screen to drop back to the text
> > > console so that the user can see the error, which is not what we
> > > normally want to happen.
> > > 
> > > Instead add a new brcmf_info macro and use that.
> > > 
> > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > > ---
> > > Changes in v2:
> > > -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
> > > Changes in v3:
> > > -Use do { } while (0) around macro
> > 
> > why?  Single statement macros do not need a do/while
> 
> Because Arend ask me to during review of v2.

Well, maybe Arend should learn that single statement macros
don't need do/while guards and that do/while guards are
generally not used in the kernel for single statements.
Arend Van Spriel March 8, 2017, 8:44 p.m. UTC | #4
On 8-3-2017 18:53, Joe Perches wrote:
> On Wed, 2017-03-08 at 17:57 +0100, Hans de Goede wrote:
>> Hi,
> 
> And hello back to you.

Also hello.

>> On 08-03-17 17:34, Joe Perches wrote:
>>> On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
>>>> Using pr_err for things which are not errors is a bad idea. E.g. it
>>>> will cause the plymouth bootsplash screen to drop back to the text
>>>> console so that the user can see the error, which is not what we
>>>> normally want to happen.
>>>>
>>>> Instead add a new brcmf_info macro and use that.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>> ---
>>>> Changes in v2:
>>>> -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
>>>> Changes in v3:
>>>> -Use do { } while (0) around macro
>>>
>>> why?  Single statement macros do not need a do/while
>>
>> Because Arend ask me to during review of v2.
> 
> Well, maybe Arend should learn that single statement macros
> don't need do/while guards and that do/while guards are
> generally not used in the kernel for single statements.

Always good to learn from an expert. The intent behind my remark was to
follow the same pattern as brcmf_err for the sake of consistency. I was
not clear.
Hans de Goede March 9, 2017, 8:09 a.m. UTC | #5
Hi all,

On 08-03-17 21:44, Arend Van Spriel wrote:
>
>
> On 8-3-2017 18:53, Joe Perches wrote:
>> On Wed, 2017-03-08 at 17:57 +0100, Hans de Goede wrote:
>>> Hi,
>>
>> And hello back to you.
>
> Also hello.
>
>>> On 08-03-17 17:34, Joe Perches wrote:
>>>> On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
>>>>> Using pr_err for things which are not errors is a bad idea. E.g. it
>>>>> will cause the plymouth bootsplash screen to drop back to the text
>>>>> console so that the user can see the error, which is not what we
>>>>> normally want to happen.
>>>>>
>>>>> Instead add a new brcmf_info macro and use that.
>>>>>
>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>> ---
>>>>> Changes in v2:
>>>>> -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
>>>>> Changes in v3:
>>>>> -Use do { } while (0) around macro
>>>>
>>>> why?  Single statement macros do not need a do/while
>>>
>>> Because Arend ask me to during review of v2.
>>
>> Well, maybe Arend should learn that single statement macros
>> don't need do/while guards and that do/while guards are
>> generally not used in the kernel for single statements.
>
> Always good to learn from an expert. The intent behind my remark was to
> follow the same pattern as brcmf_err for the sake of consistency. I was
> not clear.

Ok, so what is it going to be, are we going to keep this as is
with the do .. while added or shall I do a v4 dropping it again?

Regards,

Hans
Arend Van Spriel March 9, 2017, 8:17 a.m. UTC | #6
On 9-3-2017 9:09, Hans de Goede wrote:
> Hi all,
> 
> On 08-03-17 21:44, Arend Van Spriel wrote:
>>
>>
>> On 8-3-2017 18:53, Joe Perches wrote:
>>> On Wed, 2017-03-08 at 17:57 +0100, Hans de Goede wrote:
>>>> Hi,
>>>
>>> And hello back to you.
>>
>> Also hello.
>>
>>>> On 08-03-17 17:34, Joe Perches wrote:
>>>>> On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
>>>>>> Using pr_err for things which are not errors is a bad idea. E.g. it
>>>>>> will cause the plymouth bootsplash screen to drop back to the text
>>>>>> console so that the user can see the error, which is not what we
>>>>>> normally want to happen.
>>>>>>
>>>>>> Instead add a new brcmf_info macro and use that.
>>>>>>
>>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>>> ---
>>>>>> Changes in v2:
>>>>>> -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
>>>>>> Changes in v3:
>>>>>> -Use do { } while (0) around macro
>>>>>
>>>>> why?  Single statement macros do not need a do/while
>>>>
>>>> Because Arend ask me to during review of v2.
>>>
>>> Well, maybe Arend should learn that single statement macros
>>> don't need do/while guards and that do/while guards are
>>> generally not used in the kernel for single statements.
>>
>> Always good to learn from an expert. The intent behind my remark was to
>> follow the same pattern as brcmf_err for the sake of consistency. I was
>> not clear.
> 
> Ok, so what is it going to be, are we going to keep this as is
> with the do .. while added or shall I do a v4 dropping it again?

Sorry, Hans

My bad. Let's stick with v3 and I will do a follow-up patch.

Regards,
Arend

> Regards,
> 
> Hans
Hans de Goede March 9, 2017, 8:28 a.m. UTC | #7
Hi,

On 09-03-17 09:17, Arend Van Spriel wrote:
> On 9-3-2017 9:09, Hans de Goede wrote:
>> Hi all,
>>
>> On 08-03-17 21:44, Arend Van Spriel wrote:
>>>
>>>
>>> On 8-3-2017 18:53, Joe Perches wrote:
>>>> On Wed, 2017-03-08 at 17:57 +0100, Hans de Goede wrote:
>>>>> Hi,
>>>>
>>>> And hello back to you.
>>>
>>> Also hello.
>>>
>>>>> On 08-03-17 17:34, Joe Perches wrote:
>>>>>> On Wed, 2017-03-08 at 09:23 +0100, Hans de Goede wrote:
>>>>>>> Using pr_err for things which are not errors is a bad idea. E.g. it
>>>>>>> will cause the plymouth bootsplash screen to drop back to the text
>>>>>>> console so that the user can see the error, which is not what we
>>>>>>> normally want to happen.
>>>>>>>
>>>>>>> Instead add a new brcmf_info macro and use that.
>>>>>>>
>>>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>>>> ---
>>>>>>> Changes in v2:
>>>>>>> -Fix brcm_err typo (should be brcmf_err) in CONFIG_BRCM_TRACING case
>>>>>>> Changes in v3:
>>>>>>> -Use do { } while (0) around macro
>>>>>>
>>>>>> why?  Single statement macros do not need a do/while
>>>>>
>>>>> Because Arend ask me to during review of v2.
>>>>
>>>> Well, maybe Arend should learn that single statement macros
>>>> don't need do/while guards and that do/while guards are
>>>> generally not used in the kernel for single statements.
>>>
>>> Always good to learn from an expert. The intent behind my remark was to
>>> follow the same pattern as brcmf_err for the sake of consistency. I was
>>> not clear.
>>
>> Ok, so what is it going to be, are we going to keep this as is
>> with the do .. while added or shall I do a v4 dropping it again?
>
> Sorry, Hans
>
> My bad. Let's stick with v3 and I will do a follow-up patch.

Ok, that works for me :)

Regards,

Hans
diff mbox

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
index 33b133f..7a2b495 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -161,7 +161,7 @@  int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
 	strsep(&ptr, "\n");
 
 	/* Print fw version info */
-	brcmf_err("Firmware version = %s\n", buf);
+	brcmf_info("Firmware version = %s\n", buf);
 
 	/* locate firmware version number for ethtool */
 	ptr = strrchr(buf, ' ') + 1;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
index 0661261..afb2436 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
@@ -59,6 +59,10 @@  void __brcmf_err(const char *func, const char *fmt, ...);
 	} while (0)
 
 #if defined(DEBUG) || defined(CONFIG_BRCM_TRACING)
+
+/* For debug/tracing purposes treat info messages as errors */
+#define brcmf_info brcmf_err
+
 __printf(3, 4)
 void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...);
 #define brcmf_dbg(level, fmt, ...)				\
@@ -77,6 +81,11 @@  do {								\
 
 #else /* defined(DEBUG) || defined(CONFIG_BRCM_TRACING) */
 
+#define brcmf_info(fmt, ...)						\
+	do {								\
+		pr_info("%s: " fmt, __func__, ##__VA_ARGS__);		\
+	} while (0)
+
 #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
 
 #define BRCMF_DATA_ON()		0