From: Bartosz Golaszewski <bartosz.golaszew...@linaro.org>

Linux kernel commit 8bd76b3d3f3a ("gpio: sim: lock up configfs that an
instantiated device depends on") revealed an issue in libgpiod bindings
tests where a GPIO simulator device is not disabled before removing its
configfs entries.

Add a patch (already submitted upstream) that fixes the observed ptest
failures.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszew...@linaro.org>
---
 ...tests-disable-device-before-releasin.patch | 49 +++++++++++++++++++
 .../python/python3-gpiod_2.2.3.bb             |  5 +-
 2 files changed, 53 insertions(+), 1 deletion(-)
 create mode 100644 
meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch

diff --git 
a/meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch
 
b/meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch
new file mode 100644
index 0000000000..9025e0d72d
--- /dev/null
+++ 
b/meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch
@@ -0,0 +1,49 @@
+From ad91b034e7575074998b3e480b592e3ae6d00def Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <bartosz.golaszew...@linaro.org>
+Date: Tue, 4 Feb 2025 09:36:13 +0100
+Subject: [PATCH] bindings: python: tests: disable device before releasing the
+ bank
+
+Linux kernel commit 8bd76b3d3f3a ("gpio: sim: lock up configfs that an
+instantiated device depends on") uncovered an issue in Python bindings
+tests where the GPIO simulator device is not disabled before removing its
+configfs entries. Reorder the operations in chip_finalize() in order to
+disable the device first (if needed) before releasing any other
+resources.
+
+Upstream-Status: Submitted 
[https://lore.kernel.org/all/20250203-fix-gpiosim-in-bindings-v1-2-d2c9e0f3a...@linaro.org/]
+
+Signed-off-by: Bartosz Golaszewski <bartosz.golaszew...@linaro.org>
+---
+ tests/gpiosim/ext.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/tests/gpiosim/ext.c b/tests/gpiosim/ext.c
+index 272e6f7..cb5611a 100644
+--- a/tests/gpiosim/ext.c
++++ b/tests/gpiosim/ext.c
+@@ -96,15 +96,16 @@ static int chip_init(chip_object *self,
+ 
+ static void chip_finalize(chip_object *self)
+ {
+-      if (self->bank)
+-              gpiosim_bank_unref(self->bank);
+-
+       if (self->dev) {
+               if (gpiosim_dev_is_live(self->dev))
+                       gpiosim_dev_disable(self->dev);
+-
+-              gpiosim_dev_unref(self->dev);
+       }
++
++      if (self->bank)
++              gpiosim_bank_unref(self->bank);
++
++      if (self->dev)
++              gpiosim_dev_unref(self->dev);
+ }
+ 
+ static void chip_dealloc(PyObject *self)
+-- 
+2.45.2
+
diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.2.3.bb 
b/meta-python/recipes-devtools/python/python3-gpiod_2.2.3.bb
index 58908ad0d5..bdc7e52ca5 100644
--- a/meta-python/recipes-devtools/python/python3-gpiod_2.2.3.bb
+++ b/meta-python/recipes-devtools/python/python3-gpiod_2.2.3.bb
@@ -5,7 +5,10 @@ LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
 # package is spun out.
 LIC_FILES_CHKSUM = 
"file://setup.py;beginline=241;endline=241;md5=f5ddb56912b7f20bf94aa4d1bdcd3533"
 
-SRC_URI += "file://run-ptest"
+SRC_URI += " \
+    file://run-ptest \
+    file://0001-bindings-python-tests-disable-device-before-releasin.patch \
+"
 
 SRC_URI[sha256sum] = 
"b916c3741dfc4dbcf6224b39e50765f672b137896287715709d49e9f063304c5"
 
-- 
2.45.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#115267): 
https://lists.openembedded.org/g/openembedded-devel/message/115267
Mute This Topic: https://lists.openembedded.org/mt/110988821/21656
Group Owner: openembedded-devel+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to