aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/i2c-gpio-custom
diff options
context:
space:
mode:
authorSungbo Eo <mans0n@gorani.run>2019-12-06 23:25:48 +0900
committerHauke Mehrtens <hauke@hauke-m.de>2019-12-23 00:31:55 +0100
commit4fba5dc103a9a6a4b37a676850fd28ac175aece2 (patch)
treec27b9717f7bf9a6c70ce9cb0b3c8d10c6d5e8e83 /package/kernel/i2c-gpio-custom
parentdf45ef54368d3e4f872928f47edc424d843b120d (diff)
downloadupstream-4fba5dc103a9a6a4b37a676850fd28ac175aece2.tar.gz
upstream-4fba5dc103a9a6a4b37a676850fd28ac175aece2.tar.bz2
upstream-4fba5dc103a9a6a4b37a676850fd28ac175aece2.zip
kernel: fix *-gpio-custom module unloading
Unloading and reloading the modules fails, as platform_device_put() does not release resources fully. root@OpenWrt:/# insmod i2c-gpio-custom bus0=0,18,0,5 [ 196.860620] Custom GPIO-based I2C driver version 0.1.1 [ 196.871162] ------------[ cut here ]------------ [ 196.880517] WARNING: CPU: 0 PID: 1365 at fs/sysfs/dir.c:31 0x80112158 [ 196.893431] sysfs: cannot create duplicate filename '/devices/platform/i2c-gpio.0' ... [ 197.513200] kobject_add_internal failed for i2c-gpio.0 with -EEXIST, don't try to register things with the same name in the same directory. This patch fixes it by replacing platform_device_put() to platform_device_unregister(). Fixes: da7740853715 ("i2c-gpio-custom: minor bugfix") Fixes: 3bc81edc70e8 ("package: fix w1-gpio-custom package (closes #6770)") Signed-off-by: Sungbo Eo <mans0n@gorani.run> (cherry picked from commit a22b7a60d98836343c4f7b9ec0fcae68d9131522)
Diffstat (limited to 'package/kernel/i2c-gpio-custom')
-rw-r--r--package/kernel/i2c-gpio-custom/Makefile2
-rw-r--r--package/kernel/i2c-gpio-custom/src/i2c-gpio-custom.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/package/kernel/i2c-gpio-custom/Makefile b/package/kernel/i2c-gpio-custom/Makefile
index a0b86cc7ef..4891423d5c 100644
--- a/package/kernel/i2c-gpio-custom/Makefile
+++ b/package/kernel/i2c-gpio-custom/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=i2c-gpio-custom
-PKG_RELEASE:=2
+PKG_RELEASE:=3
include $(INCLUDE_DIR)/package.mk
diff --git a/package/kernel/i2c-gpio-custom/src/i2c-gpio-custom.c b/package/kernel/i2c-gpio-custom/src/i2c-gpio-custom.c
index f9917e52fd..23dfa36d69 100644
--- a/package/kernel/i2c-gpio-custom/src/i2c-gpio-custom.c
+++ b/package/kernel/i2c-gpio-custom/src/i2c-gpio-custom.c
@@ -56,7 +56,7 @@
#define DRV_NAME "i2c-gpio-custom"
#define DRV_DESC "Custom GPIO-based I2C driver"
-#define DRV_VERSION "0.1.1"
+#define DRV_VERSION "0.1.2"
#define PFX DRV_NAME ": "
@@ -101,7 +101,7 @@ static void i2c_gpio_custom_cleanup(void)
for (i = 0; i < nr_devices; i++)
if (devices[i])
- platform_device_put(devices[i]);
+ platform_device_unregister(devices[i]);
}
static int __init i2c_gpio_custom_add_one(unsigned int id, unsigned int *params)