• Bartosz Golaszewski's avatar
    gpio: virtuser: new virtual testing driver for the GPIO API · 91581c4b
    Bartosz Golaszewski authored
    The GPIO subsystem used to have a serious problem with undefined behavior
    and use-after-free bugs on hot-unplug of GPIO chips. This can be
    considered a corner-case by some as most GPIO controllers are enabled
    early in the boot process and live until the system goes down but most
    GPIO drivers do allow unbind over sysfs, many are loadable modules that
    can be (force) unloaded and there are also GPIO devices that can be
    dynamically detached, for instance CP2112 which is a USB GPIO expender.
    
    Bugs can be triggered both from user-space as well as by in-kernel users.
    We have the means of testing it from user-space via the character device
    but the issues manifest themselves differently in the kernel.
    
    This is a proposition of adding a new virtual driver - a configurable
    GPIO consumer that can be configured over configfs (similarly to
    gpio-sim) or described on the device-tree.
    
    This driver is aimed as a helper in spotting any regressions in
    hot-unplug handling in GPIOLIB.
    
    Link: https://lore.kernel.org/r/20240708142912.120570-1-brgl@bgdev.plSigned-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
    91581c4b
Makefile 8.96 KB