Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1652975 > unrolled thread

[PATCH v2 0/7] gpio: mockup: updates for 4.13

Started byBartosz Golaszewski <brgl@bgdev.pl>
First post2017-05-30 11:00 +0200
Last post2017-05-30 11:10 +0200
Articles 3 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [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

#1652975 — [PATCH v2 0/7] gpio: mockup: updates for 4.13

FromBartosz Golaszewski <brgl@bgdev.pl>
Date2017-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]


#1652983 — [PATCH v2 2/7] gpio: mockup: tweak gpio_mockup_event_write()

FromBartosz Golaszewski <brgl@bgdev.pl>
Date2017-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]


#1652987 — [PATCH v2 3/7] gpio: mockup: refuse to accept an odd number of GPIO ranges

FromBartosz Golaszewski <brgl@bgdev.pl>
Date2017-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