Re: [PATCH] pinctrl: baytrail: Do not call WARN_ON for a firmware bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
  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);
  	}

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux