Skip to contentSkip to conversation

Patch "gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Nov 7, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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 67bf5156edc4f58241fd7c119ae145c552adddd6 Mon 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