summaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch')
-rw-r--r--meta-python/recipes-devtools/python/python3-gpiod/0001-bindings-python-tests-disable-device-before-releasin.patch49
1 files changed, 49 insertions, 0 deletions
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 @@
1From ad91b034e7575074998b3e480b592e3ae6d00def Mon Sep 17 00:00:00 2001
2From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
3Date: Tue, 4 Feb 2025 09:36:13 +0100
4Subject: [PATCH] bindings: python: tests: disable device before releasing the
5 bank
6
7Linux kernel commit 8bd76b3d3f3a ("gpio: sim: lock up configfs that an
8instantiated device depends on") uncovered an issue in Python bindings
9tests where the GPIO simulator device is not disabled before removing its
10configfs entries. Reorder the operations in chip_finalize() in order to
11disable the device first (if needed) before releasing any other
12resources.
13
14Upstream-Status: Submitted [https://lore.kernel.org/all/20250203-fix-gpiosim-in-bindings-v1-2-d2c9e0f3a29d@linaro.org/]
15
16Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
17---
18 tests/gpiosim/ext.c | 11 ++++++-----
19 1 file changed, 6 insertions(+), 5 deletions(-)
20
21diff --git a/tests/gpiosim/ext.c b/tests/gpiosim/ext.c
22index 272e6f7..cb5611a 100644
23--- a/tests/gpiosim/ext.c
24+++ b/tests/gpiosim/ext.c
25@@ -96,15 +96,16 @@ static int chip_init(chip_object *self,
26
27 static void chip_finalize(chip_object *self)
28 {
29- if (self->bank)
30- gpiosim_bank_unref(self->bank);
31-
32 if (self->dev) {
33 if (gpiosim_dev_is_live(self->dev))
34 gpiosim_dev_disable(self->dev);
35-
36- gpiosim_dev_unref(self->dev);
37 }
38+
39+ if (self->bank)
40+ gpiosim_bank_unref(self->bank);
41+
42+ if (self->dev)
43+ gpiosim_dev_unref(self->dev);
44 }
45
46 static void chip_dealloc(PyObject *self)
47--
482.45.2
49