Messages in this thread | | | Date | Wed, 29 Apr 2015 23:44:18 +0200 | Subject | Re: [PATCH 01/23] gpio: sysfs: fix memory leaks and device hotplug | From | Linus Walleij <> |
| |
On Tue, Apr 21, 2015 at 5:42 PM, Johan Hovold <johan@kernel.org> wrote:
> Unregister GPIOs requested through sysfs at chip remove to avoid leaking > the associated memory and sysfs entries. > > The stale sysfs entries prevented the gpio numbers from being exported > when the gpio range was later reused (e.g. at device reconnect). > > This also fixes the related module-reference leak. > > Note that kernfs makes sure that any on-going sysfs operations finish > before the class devices are unregistered and that further accesses > fail. > > The chip exported flag is used to prevent gpiod exports during removal. > This also makes it harder to trigger, but does not fix, the related race > between gpiochip_remove and export_store, which is really a race with > gpiod_request that needs to be addressed separately. > > Also note that this would prevent the crashes (e.g. NULL-dereferences) > at reconnect that affects pre-3.18 kernels, as well as use-after-free on > operations on open attribute files on pre-3.14 kernels (prior to > kernfs). > > Fixes: d8f388d8dc8d ("gpio: sysfs interface") > Cc: stable <stable@vger.kernel.org> # v2.6.27: 01cca93a9491 > Signed-off-by: Johan Hovold <johan@kernel.org>
Patch applied for fixes.
I worry a bit about what userspaces do out there, but they cannot reasonably have behaviours tied to in-flight removal of GPIO chips, that would be bizarre.
Yours, Linus Walleij
| |