[PATCH 00/23] gpio: sysfs: fixes and clean ups

From: Johan Hovold
Date: Tue Apr 21 2015 - 11:43:22 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/