Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab550209 authored by Karthikeyan Mani's avatar Karthikeyan Mani Committed by Gerrit - the friendly Code Review server
Browse files

ASoC: soundwire: Add support for rmmod of swr-wcd-ctrl



Cleanup remove functions from double free issues.

CRs-fixed: 2092930
Change-Id: Ib1eec8ed15408f79b7f797bc0c8868d44176ebe5
Signed-off-by: default avatarKarthikeyan Mani <kmani@codeaurora.org>
parent f272525e
Loading
Loading
Loading
Loading
+7 −4
Original line number Original line Diff line number Diff line
@@ -79,11 +79,16 @@ void swr_remove_device(struct swr_device *swr_dev)
{
{
	struct swr_device *swr_dev_loop, *safe;
	struct swr_device *swr_dev_loop, *safe;


	/*
	 * master still has reference to all nodes and deletes
	 * at platform_unregister, so need to init the deleted
	 * entry
	 */
	list_for_each_entry_safe(swr_dev_loop, safe,
	list_for_each_entry_safe(swr_dev_loop, safe,
				 &swr_dev->master->devices,
				 &swr_dev->master->devices,
				 dev_list) {
				 dev_list) {
		if (swr_dev == swr_dev_loop)
		if (swr_dev == swr_dev_loop)
			list_del(&swr_dev_loop->dev_list);
			list_del_init(&swr_dev_loop->dev_list);
	}
	}
}
}
EXPORT_SYMBOL(swr_remove_device);
EXPORT_SYMBOL(swr_remove_device);
@@ -789,9 +794,7 @@ static void swr_unregister_device(struct swr_device *swr)


static void swr_master_release(struct device *dev)
static void swr_master_release(struct device *dev)
{
{
	struct swr_master *master = to_swr_master(dev);
	/* kfree of master done at swrm_remove of device */

	kfree(master);
}
}


#define swr_master_attr_gr NULL
#define swr_master_attr_gr NULL