On Thu, Dec 19, 2019 at 2:15 PM Jia-Ju Bai <baijiaju1990@xxxxxxxxx> wrote: > drivers/gpio/gpiolib-sysfs.c, 796: > mutex_lock in gpiochip_sysfs_unregister > drivers/gpio/gpiolib.c, 1455: > gpiochip_sysfs_unregister in gpiochip_remove > drivers/gpio/gpio-grgpio.c, 460: > gpiochip_remove in grgpio_remove > drivers/gpio/gpio-grgpio.c, 449: > _raw_spin_lock_irqsave in grgpio_remove > > kernel/irq/irqdomain.c, 243: > mutex_lock in irq_domain_remove > drivers/gpio/gpio-grgpio.c, 463: > irq_domain_remove in grgpio_remove > drivers/gpio/gpio-grgpio.c, 449: > _raw_spin_lock_irqsave in grgpio_remove > > mutex_lock() can sleep at runtime. > > To fix these bugs, the lock is dropped in grgpio_remove(), because there > is no need for locking in remove() callbacks. > > These bugs are found by a static analysis tool STCheck written by > myself. > > Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxxxx> > --- > v2: > * Drop the lock instead of moving the calls to lock functions. > Thank Bartosz for good advice. Looks good to me, patch applied! Yours, Linus Walleij