On Tue, Aug 22, 2023 at 09:51:21AM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > If a GPIO simulator device is unbound with interrupts still requested, > we will hit a use-after-free issue in __irq_domain_deactivate_irq(). The > owner of the irq domain must dispose of all mappings before destroying > the domain object. ... > +static void gpio_sim_dispose_mappings(void *data) > +{ > + struct gpio_sim_chip *chip = data; > + unsigned int i, irq; > + > + for (i = 0; i < chip->gc.ngpio; i++) { > + irq = irq_find_mapping(chip->irq_sim, i); > + if (irq) This duplicates check in the following call. > + irq_dispose_mapping(irq); > + } > +} -- With Best Regards, Andy Shevchenko