[PATCH] gpio/gpio-sysfs: Try to export busy GPIO line leads to wrongGPIO line exporting

From: Denis Kuzmenko
Date: Sat Nov 12 2011 - 20:30:40 EST


From: Denis Kuzmenko <linux@xxxxxxxxxxxxxx>

Fix bug in gpio-sysfs interface (export of busy GPIO line leads to export of different GPIO line).

Signed-off-by: Denis Kuzmenko <linux@xxxxxxxxxxxxxx>
---

Patch is against 3.0.9
When trying to export GPIO line 37(40) which is already exported/requested by kernel code we got GPIO line 3(4) exported.
Looks like this is done because `export_store` function doesn't return the number of processed bytes and gets a part of previous buffer again.
This fix works for me (Samsung s3c2440).

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index a971e3d..ccec497 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -633,7 +633,7 @@ static ssize_t export_store(struct class *class,
done:
if (status)
pr_debug("%s: status %d\n", __func__, status);
- return status ? : len;
+ return len;
}

static ssize_t unexport_store(struct class *class,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/