Commit 01a03099 authored by Karicheri, Muralidharan's avatar Karicheri, Muralidharan Committed by David S. Miller

net: netcp: fix cleanup interface list in netcp_remove()

Currently if user do rmmod keystone_netcp.ko following warning is
seen :-

[   59.035891] ------------[ cut here ]------------
[   59.040535] WARNING: CPU: 2 PID: 1619 at drivers/net/ethernet/ti/
netcp_core.c:2127 netcp_remove)

This is because the interface list is not cleaned up in netcp_remove.
This patch fixes this. Also fix some checkpatch related warnings.
Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2482abb9
...@@ -2112,6 +2112,7 @@ static int netcp_probe(struct platform_device *pdev) ...@@ -2112,6 +2112,7 @@ static int netcp_probe(struct platform_device *pdev)
static int netcp_remove(struct platform_device *pdev) static int netcp_remove(struct platform_device *pdev)
{ {
struct netcp_device *netcp_device = platform_get_drvdata(pdev); struct netcp_device *netcp_device = platform_get_drvdata(pdev);
struct netcp_intf *netcp_intf, *netcp_tmp;
struct netcp_inst_modpriv *inst_modpriv, *tmp; struct netcp_inst_modpriv *inst_modpriv, *tmp;
struct netcp_module *module; struct netcp_module *module;
...@@ -2123,8 +2124,16 @@ static int netcp_remove(struct platform_device *pdev) ...@@ -2123,8 +2124,16 @@ static int netcp_remove(struct platform_device *pdev)
list_del(&inst_modpriv->inst_list); list_del(&inst_modpriv->inst_list);
kfree(inst_modpriv); kfree(inst_modpriv);
} }
WARN(!list_empty(&netcp_device->interface_head), "%s interface list not empty!\n",
pdev->name); /* now that all modules are removed, clean up the interfaces */
list_for_each_entry_safe(netcp_intf, netcp_tmp,
&netcp_device->interface_head,
interface_list) {
netcp_delete_interface(netcp_device, netcp_intf->ndev);
}
WARN(!list_empty(&netcp_device->interface_head),
"%s interface list not empty!\n", pdev->name);
devm_kfree(&pdev->dev, netcp_device); devm_kfree(&pdev->dev, netcp_device);
pm_runtime_put_sync(&pdev->dev); pm_runtime_put_sync(&pdev->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment