kernel: fix *-gpio-custom module unloading
authorSungbo Eo <mans0n@gorani.run>
Fri, 6 Dec 2019 14:25:48 +0000 (23:25 +0900)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 22 Dec 2019 23:31:55 +0000 (00:31 +0100)
commit4fba5dc103a9a6a4b37a676850fd28ac175aece2
treec27b9717f7bf9a6c70ce9cb0b3c8d10c6d5e8e83
parentdf45ef54368d3e4f872928f47edc424d843b120d
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)
package/kernel/i2c-gpio-custom/Makefile
package/kernel/i2c-gpio-custom/src/i2c-gpio-custom.c
package/kernel/w1-gpio-custom/Makefile
package/kernel/w1-gpio-custom/src/w1-gpio-custom.c