Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1652975 > unrolled thread
| Started by | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| First post | 2017-05-30 11:00 +0200 |
| Last post | 2017-05-30 11:10 +0200 |
| Articles | 3 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v2 0/7] gpio: mockup: updates for 4.13 Bartosz Golaszewski <brgl@bgdev.pl> - 2017-05-30 11:00 +0200
[PATCH v2 2/7] gpio: mockup: tweak gpio_mockup_event_write() Bartosz Golaszewski <brgl@bgdev.pl> - 2017-05-30 11:10 +0200
[PATCH v2 3/7] gpio: mockup: refuse to accept an odd number of GPIO ranges Bartosz Golaszewski <brgl@bgdev.pl> - 2017-05-30 11:10 +0200
| From | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| Date | 2017-05-30 11:00 +0200 |
| Subject | [PATCH v2 0/7] gpio: mockup: updates for 4.13 |
| Message-ID | <tMLaq-54b-5@gated-at.bofh.it> |
This series contains a couple bug fixes and other minor updates for the GPIO testing module. v1 -> v2: - omit applied patches - use kstrtoint_from_user() for debugfs input sanitization - add a patch improving the code in gpio_mockup_event_write() - bail out from gpio_mockup_event_write() on invalid input even when nobody is listening for events Bartosz Golaszewski (7): gpio: mockup: improve the debugfs input sanitization gpio: mockup: tweak gpio_mockup_event_write() gpio: mockup: refuse to accept an odd number of GPIO ranges gpio: mockup: improve readability gpio: mockup: don't return magic numbers from probe() gpio: mockup: improve the error message gpio: mockup: add myself as author drivers/gpio/gpio-mockup.c | 61 ++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 29 deletions(-) -- 2.9.3
[toc] | [next] | [standalone]
| From | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| Date | 2017-05-30 11:10 +0200 |
| Subject | [PATCH v2 2/7] gpio: mockup: tweak gpio_mockup_event_write() |
| Message-ID | <tMLk5-5mP-13@gated-at.bofh.it> |
| In reply to | #1652975 |
Invert the logic of the irq_enabled check and only access the private
data after the input is sanitized.
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
---
drivers/gpio/gpio-mockup.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index da76267..d78e8e0 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -210,24 +210,23 @@ static ssize_t gpio_mockup_event_write(struct file *file,
struct gpio_chip *gc;
int rv, val;
- sfile = file->private_data;
- priv = sfile->private;
- desc = priv->desc;
- chip = priv->chip;
- gc = &chip->gc;
-
rv = kstrtoint_from_user(usr_buf, size, 0, &val);
if (rv)
return rv;
if (val != 0 && val != 1)
return -EINVAL;
- if (!chip->lines[priv->offset].irq_enabled)
- return size;
+ sfile = file->private_data;
+ priv = sfile->private;
+ desc = priv->desc;
+ chip = priv->chip;
+ gc = &chip->gc;
- gpiod_set_value_cansleep(desc, val);
- priv->chip->irq_ctx.irq = gc->irq_base + priv->offset;
- irq_work_queue(&priv->chip->irq_ctx.work);
+ if (chip->lines[priv->offset].irq_enabled) {
+ gpiod_set_value_cansleep(desc, val);
+ priv->chip->irq_ctx.irq = gc->irq_base + priv->offset;
+ irq_work_queue(&priv->chip->irq_ctx.work);
+ }
return size;
}
--
2.9.3
[toc] | [prev] | [next] | [standalone]
| From | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| Date | 2017-05-30 11:10 +0200 |
| Subject | [PATCH v2 3/7] gpio: mockup: refuse to accept an odd number of GPIO ranges |
| Message-ID | <tMLk6-5mP-21@gated-at.bofh.it> |
| In reply to | #1652975 |
Currently we ignore the last odd range value, since each chip is described by two values. Be more strict and require the user to pass an even number of ranges. Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> --- drivers/gpio/gpio-mockup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index d78e8e0..d95d37a 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -334,7 +334,7 @@ static int gpio_mockup_probe(struct platform_device *pdev) int ret, i, base, ngpio; char *chip_name; - if (gpio_mockup_params_nr < 2) + if (gpio_mockup_params_nr < 2 || (gpio_mockup_params_nr % 2)) return -EINVAL; chips = devm_kzalloc(dev, -- 2.9.3
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web