Patch "gpio: make library immune to error pointers" has been added to the 4.6-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
gpio: make library immune to error pointers
to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
gpio-make-library-immune-to-error-pointers.patch
and it can be found in the queue-4.6 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
c0a1ecb9f4e208f4b75d88fa9669748e3fd705abMon Sep 17 00:00:00 2001
From: Linus Walleij <[email protected]>
Date: Thu, 16 Jun 2016 11:55:55 +0200
Subject: gpio: make library immune to error pointers
From: Linus Walleij <[email protected]>
commit c0a1ecb9f4e208f4b75d88fa9669748e3fd705ab upstream.
Most functions that take a GPIO descriptor in need to check the descriptor for IS_ERR(). We do this mostly in the VALIDATE_DESC() macro except for the gpiod_to_irq() function which needs special handling.
--- drivers/gpio/gpiolib.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
drivers/gpio/gpiolib.c +11 -3
@@ -1345,8 +1345,12 @@ done:#define VALIDATE_DESC (desc) do { \ if (!desc) \ return 0; \ + if (IS_ERR(desc)) { \ + pr_warn("%s: invalid GPIO (errorpointer)\n", __func__); \ + return PTR_ERR(desc); \ + } \ if (!desc->gdev) { \ - pr_warn("%s: invalid GPIO\n", __func__); \ + pr_warn("%s: invalid GPIO (no device)\n", __func__); \ return -EINVAL; \ } \ if ( !desc->gdev->chip ) { \
@@ -1358,8 +1362,12 @@ done:#define VALIDATE_DESC_VOID (desc) do { \ if (!desc) \ return; \ + if (IS_ERR(desc)) { \ + pr_warn("%s: invalid GPIO (errorpointer)\n", __func__); \ + return; \ + } \ if (!desc->gdev) { \ - pr_warn("%s: invalid GPIO\n", __func__); \ + pr_warn("%s: invalid GPIO (no device)\n", __func__); \ return; \ } \ if (!desc->gdev->chip) { \
@@ -2011,7 +2019,7 @@ int gpiod_to_irq(const struct gpio_desc* requires this function to not return zero on an invalid descriptor * but rather a negative error number. */ -if (!desc || !desc->gdev || !desc->gdev->chip) +if (!desc ||IS_ERR (desc) || !desc->gdev || !desc->gdev->chip)return -EINVAL ; chip = desc->gdev->chip;
Patches currently in stable-queue which might be from [email protected] are
queue-4.6/gpio-make-library-immune-to-error-pointers.patch queue-4.6/revert-gpiolib-split-gpio-flags-parsing-and-gpio-configuration.patch queue-4.6/gpio-sch-fix-oops-on-module-load-on-asus-eee-pc-1201.patch