All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
@ 2017-07-12 12:31 Hans de Goede
  2017-07-12 12:38 ` Andy Shevchenko
  2017-08-01 13:19 ` Linus Walleij
  0 siblings, 2 replies; 7+ messages in thread
From: Hans de Goede @ 2017-07-12 12:31 UTC (permalink / raw)
  To: Mika Westerberg, Heikki Krogerus, Linus Walleij
  Cc: Hans de Goede, Andy Shevchenko, linux-gpio

WARN_ON causes a backtrace to get logged which is only useful for
kernel bugs. For signalling a firmware bug dev_warn(dev, FW_BUG "...")
should be used.

This fixes users running userspace software to monitor kernel oopses
getting a false positive bug-report every boot because of the wrong
use of WARN_ON.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/pinctrl/intel/pinctrl-baytrail.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/intel/pinctrl-baytrail.c
index fa3c5758ac67..0f3a02495aeb 100644
--- a/drivers/pinctrl/intel/pinctrl-baytrail.c
+++ b/drivers/pinctrl/intel/pinctrl-baytrail.c
@@ -981,12 +981,12 @@ static int byt_gpio_request_enable(struct pinctrl_dev *pctl_dev,
 	 */
 	value = readl(reg) & BYT_PIN_MUX;
 	gpio_mux = byt_get_gpio_mux(vg, offset);
-	if (WARN_ON(gpio_mux != value)) {
+	if (gpio_mux != value) {
 		value = readl(reg) & ~BYT_PIN_MUX;
 		value |= gpio_mux;
 		writel(value, reg);
 
-		dev_warn(&vg->pdev->dev,
+		dev_warn(&vg->pdev->dev, FW_BUG
 			 "pin %u forcibly re-configured as GPIO\n", offset);
 	}
 
-- 
2.13.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  2017-07-12 12:31 [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug Hans de Goede
@ 2017-07-12 12:38 ` Andy Shevchenko
  2017-07-12 12:44   ` Hans de Goede
  2017-08-01 13:19 ` Linus Walleij
  1 sibling, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2017-07-12 12:38 UTC (permalink / raw)
  To: Hans de Goede, Mika Westerberg, Heikki Krogerus, Linus Walleij; +Cc: linux-gpio

On Wed, 2017-07-12 at 14:31 +0200, Hans de Goede wrote:
> WARN_ON causes a backtrace to get logged which is only useful for
> kernel bugs. For signalling a firmware bug dev_warn(dev, FW_BUG "...")
> should be used.
> 
> This fixes users running userspace software to monitor kernel oopses
> getting a false positive bug-report every boot because of the wrong
> use of WARN_ON.

I'm not against the patch, looks good to me, though can you shed a bit
of light what is the FW bug you are experiencing?

> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/pinctrl/intel/pinctrl-baytrail.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c
> b/drivers/pinctrl/intel/pinctrl-baytrail.c
> index fa3c5758ac67..0f3a02495aeb 100644
> --- a/drivers/pinctrl/intel/pinctrl-baytrail.c
> +++ b/drivers/pinctrl/intel/pinctrl-baytrail.c
> @@ -981,12 +981,12 @@ static int byt_gpio_request_enable(struct
> pinctrl_dev *pctl_dev,
>  	 */
>  	value = readl(reg) & BYT_PIN_MUX;
>  	gpio_mux = byt_get_gpio_mux(vg, offset);
> -	if (WARN_ON(gpio_mux != value)) {
> +	if (gpio_mux != value) {
>  		value = readl(reg) & ~BYT_PIN_MUX;
>  		value |= gpio_mux;
>  		writel(value, reg);
>  
> -		dev_warn(&vg->pdev->dev,
> +		dev_warn(&vg->pdev->dev, FW_BUG
>  			 "pin %u forcibly re-configured as GPIO\n",
> offset);
>  	}
>  

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  2017-07-12 12:38 ` Andy Shevchenko
@ 2017-07-12 12:44   ` Hans de Goede
  2017-07-12 13:12     ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Hans de Goede @ 2017-07-12 12:44 UTC (permalink / raw)
  To: Andy Shevchenko, Mika Westerberg, Heikki Krogerus, Linus Walleij
  Cc: linux-gpio

Hi,

On 12-07-17 14:38, Andy Shevchenko wrote:
> On Wed, 2017-07-12 at 14:31 +0200, Hans de Goede wrote:
>> WARN_ON causes a backtrace to get logged which is only useful for
>> kernel bugs. For signalling a firmware bug dev_warn(dev, FW_BUG "...")
>> should be used.
>>
>> This fixes users running userspace software to monitor kernel oopses
>> getting a false positive bug-report every boot because of the wrong
>> use of WARN_ON.
> 
> I'm not against the patch, looks good to me, though can you shed a bit
> of light what is the FW bug you are experiencing?

The bug is the code path which has the WARN_ON triggering, which means
that the ACPI tables / or a driver want to use a pin as gpio and it has
been setup differently (as a special function) by the firmware.

Regards,

Hans



> 
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>   drivers/pinctrl/intel/pinctrl-baytrail.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c
>> b/drivers/pinctrl/intel/pinctrl-baytrail.c
>> index fa3c5758ac67..0f3a02495aeb 100644
>> --- a/drivers/pinctrl/intel/pinctrl-baytrail.c
>> +++ b/drivers/pinctrl/intel/pinctrl-baytrail.c
>> @@ -981,12 +981,12 @@ static int byt_gpio_request_enable(struct
>> pinctrl_dev *pctl_dev,
>>   	 */
>>   	value = readl(reg) & BYT_PIN_MUX;
>>   	gpio_mux = byt_get_gpio_mux(vg, offset);
>> -	if (WARN_ON(gpio_mux != value)) {
>> +	if (gpio_mux != value) {
>>   		value = readl(reg) & ~BYT_PIN_MUX;
>>   		value |= gpio_mux;
>>   		writel(value, reg);
>>   
>> -		dev_warn(&vg->pdev->dev,
>> +		dev_warn(&vg->pdev->dev, FW_BUG
>>   			 "pin %u forcibly re-configured as GPIO\n",
>> offset);
>>   	}
>>   
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  2017-07-12 12:44   ` Hans de Goede
@ 2017-07-12 13:12     ` Andy Shevchenko
  2017-07-12 14:18       ` Hans de Goede
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2017-07-12 13:12 UTC (permalink / raw)
  To: Hans de Goede, Mika Westerberg, Heikki Krogerus, Linus Walleij; +Cc: linux-gpio

On Wed, 2017-07-12 at 14:44 +0200, Hans de Goede wrote:
> On 12-07-17 14:38, Andy Shevchenko wrote:
> > On Wed, 2017-07-12 at 14:31 +0200, Hans de Goede wrote:
> > > WARN_ON causes a backtrace to get logged which is only useful for
> > > kernel bugs. For signalling a firmware bug dev_warn(dev, FW_BUG
> > > "...")
> > > should be used.
> > > 
> > > This fixes users running userspace software to monitor kernel
> > > oopses
> > > getting a false positive bug-report every boot because of the
> > > wrong
> > > use of WARN_ON.
> > 
> > I'm not against the patch, looks good to me, though can you shed a
> > bit
> > of light what is the FW bug you are experiencing?
> 
> The bug is the code path which has the WARN_ON triggering, which means
> that the ACPI tables / or a driver want to use a pin as gpio and it
> has
> been setup differently (as a special function) by the firmware.

Yes, and what I'm asking are the details of it, what product, what
device needs that pin, and why do we think that is the rightful request
from the OS?

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  2017-07-12 13:12     ` Andy Shevchenko
@ 2017-07-12 14:18       ` Hans de Goede
  2017-07-12 15:25         ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Hans de Goede @ 2017-07-12 14:18 UTC (permalink / raw)
  To: Andy Shevchenko, Mika Westerberg, Heikki Krogerus, Linus Walleij
  Cc: linux-gpio

Hi,

On 12-07-17 15:12, Andy Shevchenko wrote:
> On Wed, 2017-07-12 at 14:44 +0200, Hans de Goede wrote:
>> On 12-07-17 14:38, Andy Shevchenko wrote:
>>> On Wed, 2017-07-12 at 14:31 +0200, Hans de Goede wrote:
>>>> WARN_ON causes a backtrace to get logged which is only useful for
>>>> kernel bugs. For signalling a firmware bug dev_warn(dev, FW_BUG
>>>> "...")
>>>> should be used.
>>>>
>>>> This fixes users running userspace software to monitor kernel
>>>> oopses
>>>> getting a false positive bug-report every boot because of the
>>>> wrong
>>>> use of WARN_ON.
>>>
>>> I'm not against the patch, looks good to me, though can you shed a
>>> bit
>>> of light what is the FW bug you are experiencing?
>>
>> The bug is the code path which has the WARN_ON triggering, which means
>> that the ACPI tables / or a driver want to use a pin as gpio and it
>> has
>> been setup differently (as a special function) by the firmware.
> 
> Yes, and what I'm asking are the details of it, what product, what
> device needs that pin, and why do we think that is the rightful request
> from the OS?

I will need to do some digging to get you these details, I will get
back to you on that later.

This discussion really is orthogonal to this patch, calling WARN_ON
for something outside of the control of the kernel clearly is the wrong
thing to do. So in the mean time can I have your ack for this patch ?

Regards,

Hans

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  2017-07-12 14:18       ` Hans de Goede
@ 2017-07-12 15:25         ` Andy Shevchenko
  0 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2017-07-12 15:25 UTC (permalink / raw)
  To: Hans de Goede, Mika Westerberg, Heikki Krogerus, Linus Walleij; +Cc: linux-gpio

On Wed, 2017-07-12 at 16:18 +0200, Hans de Goede wrote:
> On 12-07-17 15:12, Andy Shevchenko wrote:
> > On Wed, 2017-07-12 at 14:44 +0200, Hans de Goede wrote:
> > > On 12-07-17 14:38, Andy Shevchenko wrote:
> > > > On Wed, 2017-07-12 at 14:31 +0200, Hans de Goede wrote:
> > > > > 


> > > that the ACPI tables / or a driver want to use a pin as gpio and
> > > it
> > > has
> > > been setup differently (as a special function) by the firmware.
> > 
> > Yes, and what I'm asking are the details of it, what product, what
> > device needs that pin, and why do we think that is the rightful
> > request
> > from the OS?
> 
> I will need to do some digging to get you these details, I will get
> back to you on that later.

Thanks!

> This discussion really is orthogonal to this patch,

Correct. I would like to know the details to have this knowledge in case
of something similar might happen with other device(s).

>  calling WARN_ON
> for something outside of the control of the kernel clearly is the
> wrong
> thing to do. So in the mean time can I have your ack for this patch ?

As I said, patch is okay to me.

Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  2017-07-12 12:31 [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug Hans de Goede
  2017-07-12 12:38 ` Andy Shevchenko
@ 2017-08-01 13:19 ` Linus Walleij
  1 sibling, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2017-08-01 13:19 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mika Westerberg, Heikki Krogerus, Andy Shevchenko, linux-gpio

On Wed, Jul 12, 2017 at 2:31 PM, Hans de Goede <hdegoede@redhat.com> wrote:

> WARN_ON causes a backtrace to get logged which is only useful for
> kernel bugs. For signalling a firmware bug dev_warn(dev, FW_BUG "...")
> should be used.
>
> This fixes users running userspace software to monitor kernel oopses
> getting a false positive bug-report every boot because of the wrong
> use of WARN_ON.
>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Patch applied with Andy's ACK.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-08-01 13:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-12 12:31 [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug Hans de Goede
2017-07-12 12:38 ` Andy Shevchenko
2017-07-12 12:44   ` Hans de Goede
2017-07-12 13:12     ` Andy Shevchenko
2017-07-12 14:18       ` Hans de Goede
2017-07-12 15:25         ` Andy Shevchenko
2017-08-01 13:19 ` Linus Walleij

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.