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)
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=i2c-gpio-custom
-PKG_RELEASE:=2
+PKG_RELEASE:=3
include $(INCLUDE_DIR)/package.mk
#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 ": "
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)
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=w1-gpio-custom
-PKG_RELEASE:=3
+PKG_RELEASE:=4
include $(INCLUDE_DIR)/package.mk
#define DRV_NAME "w1-gpio-custom"
#define DRV_DESC "Custom GPIO-based W1 driver"
-#define DRV_VERSION "0.1.1"
+#define DRV_VERSION "0.1.2"
#define PFX DRV_NAME ": "
for (i = 0; i < nr_devices; i++)
if (devices[i])
- platform_device_put(devices[i]);
+ platform_device_unregister(devices[i]);
}
static int __init w1_gpio_custom_add_one(unsigned int id, unsigned int *params)