Patch "gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()
to the 4.8-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-acpi-fix-returned-error-from-acpi_dev_gpio_irq_get.patch
and it can be found in the queue-4.8 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
67bf5156edc4f58241fd7c119ae145c552adddd6Mon Sep 17 00:00:00 2001
From: David Arcari <[email protected]>
Date: Wed, 12 Oct 2016 18:40:30 +0200
Subject: gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()
From: David Arcari <[email protected]>
commit 67bf5156edc4f58241fd7c119ae145c552adddd6 upstream.
acpi_dev_gpio_irq_get() currently ignores the error returned by acpi_get_gpiod_by_index() and overwrites it with -ENOENT.
Problem is this error can be -EPROBE_DEFER, which just blows up some drivers when the module ordering is not correct.
--- drivers/gpio/gpiolib-acpi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/gpio/gpiolib-acpi.c +5 -2
@@ -602,14 +602,17 @@ int acpi_dev_gpio_irq_get(struct acpi_de {int idx, i;unsigned int irq_flags; +int ret = -ENOENT ;for (i =0 , idx =0 ; idx <= index; i++) {struct acpi_gpio_info info;struct gpio_desc *desc; desc =acpi_get_gpiod_by_index (adev,NULL , i, &info); -if (IS_ERR (desc)) +if (IS_ERR (desc)) { + ret =PTR_ERR (desc);break ; + }if (info.gpioint && idx++ == index) {int irq =gpiod_to_irq (desc);
@@ -628,7 +631,7 @@ int acpi_dev_gpio_irq_get(struct acpi_de } } -return -ENOENT ; +return ret; }EXPORT_SYMBOL_GPL (acpi_dev_gpio_irq_get);
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/gpio-acpi-fix-returned-error-from-acpi_dev_gpio_irq_get.patch