These patches fix a number of issues with the gpio sysfs interface, including
- fix memory leaks and crashes on device hotplug - straighten out the convoluted locking - reduce sysfs-interface latencies through more fine-grained locking - more clearly separate the sysfs-interface implementation from gpiolib core The first patch is marked for stable and could go into 4.1. Unfortunately we can't just kill the gpio sysfs interface, but these patches will make it more manageable and should allow us to implement a new user-space interface while maintaining the old one (for a while at least) without losing our sanity. Note that there is still a race between chip remove and gpiod_request (and therefore sysfs export), which needs to be fixed separately (for instance as part of a generic solution to chip hotplugging). Johan Johan Hovold (23): gpio: sysfs: fix memory leaks and device hotplug gpio: clean up gpiochip_remove gpio: sysfs: drop redundant lock-as-irq gpio: sysfs: preparatory clean ups gpio: sysfs: reduce gpiochip-export locking scope gpio: sysfs: clean up chip class-device handling gpio: sysfs: rename gpiochip registration functions gpio: remove gpiod_sysfs_set_active_low gpio: sysfs: use DEVICE_ATTR macros gpio: sysfs: release irq after class-device deregistration gpio: sysfs: remove redundant export tests gpio: sysfs: add gpiod class-device data gpio: sysfs: remove redundant gpio-descriptor parameters gpio: sysfs: clean up interrupt-interface implementation gpio: sysfs: only call irq helper if needed gpio: sysfs: split irq allocation and deallocation gpio: sysfs: clean up edge_store gpio: sysfs: clean up gpiod_export_link locking gpio: sysfs: use per-gpio locking gpio: sysfs: fix race between gpiod export and unexport gpio: sysfs: rename active-low helper gpio: sysfs: remove FLAG_SYSFS_DIR gpio: sysfs: move irq trigger flags to class-device data Documentation/gpio/gpio-legacy.txt | 9 - Documentation/gpio/sysfs.txt | 8 - Documentation/zh_CN/gpio.txt | 8 - drivers/gpio/gpiolib-sysfs.c | 561 +++++++++++++++++-------------------- drivers/gpio/gpiolib.c | 18 +- drivers/gpio/gpiolib.h | 16 +- include/asm-generic/gpio.h | 5 - include/linux/gpio.h | 7 - include/linux/gpio/consumer.h | 6 - include/linux/gpio/driver.h | 4 +- 10 files changed, 273 insertions(+), 369 deletions(-) -- 2.0.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/