Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1650313 > unrolled thread
| Started by | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| First post | 2017-05-25 10:40 +0200 |
| Last post | 2017-05-29 13:40 +0200 |
| Articles | 5 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/3] gpio: check the return value of irq_alloc_generic_chip() Bartosz Golaszewski <brgl@bgdev.pl> - 2017-05-25 10:40 +0200
[PATCH 1/3] gpio: pch: check the return value of irq_alloc_generic_chip() Bartosz Golaszewski <brgl@bgdev.pl> - 2017-05-25 10:40 +0200
Re: [PATCH 1/3] gpio: pch: check the return value of irq_alloc_generic_chip() Linus Walleij <linus.walleij@linaro.org> - 2017-05-29 13:40 +0200
[PATCH 2/3] gpio: sta2x11: check the return value of irq_alloc_generic_chip() Bartosz Golaszewski <brgl@bgdev.pl> - 2017-05-25 10:40 +0200
Re: [PATCH 2/3] gpio: sta2x11: check the return value of irq_alloc_generic_chip() Linus Walleij <linus.walleij@linaro.org> - 2017-05-29 13:40 +0200
| From | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| Date | 2017-05-25 10:40 +0200 |
| Subject | [PATCH 0/3] gpio: check the return value of irq_alloc_generic_chip() |
| Message-ID | <tKWtj-5Qx-7@gated-at.bofh.it> |
While hacking on some irq devres stuff I noticed that the return value of irq_alloc_generic_chip() is not being checked in a couple GPIO drivers. Those routines can fail, so check it and bail out if they do. Bartosz Golaszewski (3): gpio: pch: check the return value of irq_alloc_generic_chip() gpio: sta2x11: check the return value of irq_alloc_generic_chip() gpio: ml-ioh: check the return value of irq_alloc_generic_chip() drivers/gpio/gpio-ml-ioh.c | 16 +++++++++++++--- drivers/gpio/gpio-pch.c | 15 ++++++++++++--- drivers/gpio/gpio-sta2x11.c | 12 ++++++++++-- 3 files changed, 35 insertions(+), 8 deletions(-) -- 2.9.3
[toc] | [next] | [standalone]
| From | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| Date | 2017-05-25 10:40 +0200 |
| Subject | [PATCH 1/3] gpio: pch: check the return value of irq_alloc_generic_chip() |
| Message-ID | <tKWtk-5Qx-23@gated-at.bofh.it> |
| In reply to | #1650313 |
This function can fail, so check the return value before dereferencing
the returned pointer.
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
---
drivers/gpio/gpio-pch.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c
index 71bc6da..f6600f8 100644
--- a/drivers/gpio/gpio-pch.c
+++ b/drivers/gpio/gpio-pch.c
@@ -331,14 +331,18 @@ static irqreturn_t pch_gpio_handler(int irq, void *dev_id)
return ret;
}
-static void pch_gpio_alloc_generic_chip(struct pch_gpio *chip,
- unsigned int irq_start, unsigned int num)
+static int pch_gpio_alloc_generic_chip(struct pch_gpio *chip,
+ unsigned int irq_start,
+ unsigned int num)
{
struct irq_chip_generic *gc;
struct irq_chip_type *ct;
gc = irq_alloc_generic_chip("pch_gpio", 1, irq_start, chip->base,
handle_simple_irq);
+ if (!gc)
+ return -ENOMEM;
+
gc->private = chip;
ct = gc->chip_types;
@@ -349,6 +353,8 @@ static void pch_gpio_alloc_generic_chip(struct pch_gpio *chip,
irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE,
IRQ_NOREQUEST | IRQ_NOPROBE, 0);
+
+ return 0;
}
static int pch_gpio_probe(struct pci_dev *pdev,
@@ -425,7 +431,10 @@ static int pch_gpio_probe(struct pci_dev *pdev,
goto err_request_irq;
}
- pch_gpio_alloc_generic_chip(chip, irq_base, gpio_pins[chip->ioh]);
+ ret = pch_gpio_alloc_generic_chip(chip, irq_base,
+ gpio_pins[chip->ioh]);
+ if (ret)
+ goto err_request_irq;
end:
return 0;
--
2.9.3
[toc] | [prev] | [next] | [standalone]
| From | Linus Walleij <linus.walleij@linaro.org> |
|---|---|
| Date | 2017-05-29 13:40 +0200 |
| Subject | Re: [PATCH 1/3] gpio: pch: check the return value of irq_alloc_generic_chip() |
| Message-ID | <tMrbI-7Eh-15@gated-at.bofh.it> |
| In reply to | #1650314 |
On Thu, May 25, 2017 at 10:37 AM, Bartosz Golaszewski <brgl@bgdev.pl> wrote: > This function can fail, so check the return value before dereferencing > the returned pointer. > > Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> Patch applied. Yours, Linus Walleij
[toc] | [prev] | [next] | [standalone]
| From | Bartosz Golaszewski <brgl@bgdev.pl> |
|---|---|
| Date | 2017-05-25 10:40 +0200 |
| Subject | [PATCH 2/3] gpio: sta2x11: check the return value of irq_alloc_generic_chip() |
| Message-ID | <tKWtl-5Qx-35@gated-at.bofh.it> |
| In reply to | #1650313 |
This function can fail, so check the return value before dereferencing
the returned pointer.
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
---
drivers/gpio/gpio-sta2x11.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-sta2x11.c b/drivers/gpio/gpio-sta2x11.c
index 39df062..9e70516 100644
--- a/drivers/gpio/gpio-sta2x11.c
+++ b/drivers/gpio/gpio-sta2x11.c
@@ -320,13 +320,16 @@ static irqreturn_t gsta_gpio_handler(int irq, void *dev_id)
return ret;
}
-static void gsta_alloc_irq_chip(struct gsta_gpio *chip)
+static int gsta_alloc_irq_chip(struct gsta_gpio *chip)
{
struct irq_chip_generic *gc;
struct irq_chip_type *ct;
gc = irq_alloc_generic_chip(KBUILD_MODNAME, 1, chip->irq_base,
chip->reg_base, handle_simple_irq);
+ if (!gc)
+ return -ENOMEM;
+
gc->private = chip;
ct = gc->chip_types;
@@ -350,6 +353,8 @@ static void gsta_alloc_irq_chip(struct gsta_gpio *chip)
}
gc->irq_cnt = i - gc->irq_base;
}
+
+ return 0;
}
/* The platform device used here is instantiated by the MFD device */
@@ -400,7 +405,10 @@ static int gsta_probe(struct platform_device *dev)
return err;
}
chip->irq_base = err;
- gsta_alloc_irq_chip(chip);
+
+ err = gsta_alloc_irq_chip(chip);
+ if (err)
+ return err;
err = devm_request_irq(&dev->dev, pdev->irq, gsta_gpio_handler,
IRQF_SHARED, KBUILD_MODNAME, chip);
--
2.9.3
[toc] | [prev] | [next] | [standalone]
| From | Linus Walleij <linus.walleij@linaro.org> |
|---|---|
| Date | 2017-05-29 13:40 +0200 |
| Subject | Re: [PATCH 2/3] gpio: sta2x11: check the return value of irq_alloc_generic_chip() |
| Message-ID | <tMrbI-7Eh-7@gated-at.bofh.it> |
| In reply to | #1650321 |
On Thu, May 25, 2017 at 10:37 AM, Bartosz Golaszewski <brgl@bgdev.pl> wrote: > This function can fail, so check the return value before dereferencing > the returned pointer. > > Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> Patch applied. Yours, Linus Walleij
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web