Re: [PATCH] gpio: remove spurious gpio_unexport debug error.

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

 



On Fri, 23 Jul 2010 06:58:07 +0200
Uwe Kleine-K__nig <u.kleine-koenig@xxxxxxxxxxxxxx> wrote:

> Hello,
> 
> On Thu, Jul 22, 2010 at 02:05:58PM -0700, Gregory Bean wrote:
> > Make gpio_unexport generate success instead of an -EINVAL
> > if asked to unexport a line which is not exported, because
> > the only result of that condition is a pr_debug
> > which complains of what is really a harmless no-op:
> > when an unexported gpio is unexported again, nothing happens.
> > That's not a failure, just a trivial border case.
> > Since gpio_free calls gpio_unexport unconditionally
> > and exported gpio lines are uncommon, most calls to
> > gpio_free with debug flags enabled generate -EINVAL
> > warnings in the log, causing unnecessary stress.
> I noticed that a few days ago, too.  Just didn't come around to fix it
> myself.
>  
> > Signed-off-by: Gregory Bean <gbean@xxxxxxxxxxxxxx>
> Acked-by: Uwe Kleine-K__nig <u.kleine-koenig@xxxxxxxxxxxxxx>
> 

Jon got there first ;)



Subject: gpio: fix spurious printk when freeing a gpio


From: Jon Povey <jon.povey@xxxxxxxxxxxxxxx>

When freeing a gpio that has not been exported, gpio_unexport() prints a
debug message when it should just fall through silently.

Example spurious message:

	gpio_unexport: gpio0 status -22

Signed-off-by: Jon Povey <jon.povey@xxxxxxxxxxxxxxx>
Cc: David Brownell <david-b@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 drivers/gpio/gpiolib.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff -puN drivers/gpio/gpiolib.c~gpio-fix-spurious-printk-when-freeing-a-gpio drivers/gpio/gpiolib.c
--- a/drivers/gpio/gpiolib.c~gpio-fix-spurious-printk-when-freeing-a-gpio
+++ a/drivers/gpio/gpiolib.c
@@ -893,10 +893,12 @@ EXPORT_SYMBOL_GPL(gpio_sysfs_set_active_
 void gpio_unexport(unsigned gpio)
 {
 	struct gpio_desc	*desc;
-	int			status = -EINVAL;
+	int			status = 0;
 
-	if (!gpio_is_valid(gpio))
+	if (!gpio_is_valid(gpio)) {
+		status = -EINVAL;
 		goto done;
+	}
 
 	mutex_lock(&sysfs_lock);
 
@@ -911,7 +913,6 @@ void gpio_unexport(unsigned gpio)
 			clear_bit(FLAG_EXPORT, &desc->flags);
 			put_device(dev);
 			device_unregister(dev);
-			status = 0;
 		} else
 			status = -ENODEV;
 	}
_

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


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux