Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'gpio-fixes-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio fixes from Bartosz Golaszewski:

- fix an irq mapping leak in gpio-sim

- associate the GPIO device's software node with the irq domain in
gpio-sim

* tag 'gpio-fixes-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
gpio: sim: pass the GPIO device's software node to irq domain
gpio: sim: dispose of irq mappings before destroying the irq_sim domain

+14 -1
+14 -1
drivers/gpio/gpio-sim.c
··· 291 291 mutex_destroy(lock); 292 292 } 293 293 294 + static void gpio_sim_dispose_mappings(void *data) 295 + { 296 + struct gpio_sim_chip *chip = data; 297 + unsigned int i; 298 + 299 + for (i = 0; i < chip->gc.ngpio; i++) 300 + irq_dispose_mapping(irq_find_mapping(chip->irq_sim, i)); 301 + } 302 + 294 303 static void gpio_sim_sysfs_remove(void *data) 295 304 { 296 305 struct gpio_sim_chip *chip = data; ··· 411 402 if (!chip->pull_map) 412 403 return -ENOMEM; 413 404 414 - chip->irq_sim = devm_irq_domain_create_sim(dev, NULL, num_lines); 405 + chip->irq_sim = devm_irq_domain_create_sim(dev, swnode, num_lines); 415 406 if (IS_ERR(chip->irq_sim)) 416 407 return PTR_ERR(chip->irq_sim); 408 + 409 + ret = devm_add_action_or_reset(dev, gpio_sim_dispose_mappings, chip); 410 + if (ret) 411 + return ret; 417 412 418 413 mutex_init(&chip->lock); 419 414 ret = devm_add_action_or_reset(dev, gpio_sim_mutex_destroy,