Commit 61fef83f authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

gpio: aggregator: remove the software node when deactivating the aggregator



The dynamic software node we create for the aggregator platform device
when using configfs is leaked when the device is deactivated. Destroy it
as the last step in the tear-down path.

Fixes: 86f162e7 ("gpio: aggregator: introduce basic configfs interface")
Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/all/CAMuHMdVZ=XUvJTGdDAjnkxgtw7Uvnn61iOy3XN_5XNZM2anctw@mail.gmail.com/
Link: https://patch.msgid.link/20260520121631.33976-1-bartosz.golaszewski@oss.qualcomm.com


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
parent 30c073ca
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -991,11 +991,15 @@ static int gpio_aggregator_activate(struct gpio_aggregator *aggr)

static void gpio_aggregator_deactivate(struct gpio_aggregator *aggr)
{
	struct fwnode_handle *swnode;

	swnode = dev_fwnode(&aggr->pdev->dev);
	platform_device_unregister(aggr->pdev);
	aggr->pdev = NULL;
	gpiod_remove_lookup_table(aggr->lookups);
	kfree(aggr->lookups->dev_id);
	kfree(aggr->lookups);
	fwnode_remove_software_node(swnode);
}

static void gpio_aggregator_lockup_configfs(struct gpio_aggregator *aggr,