aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ti/netcp_ethss.c
diff options
context:
space:
mode:
authorKaricheri, Muralidharan <m-karicheri2@ti.com>2015-07-28 18:20:13 -0400
committerDavid S. Miller <davem@davemloft.net>2015-07-29 18:37:40 -0700
commitc20afae75c32ec69eccc4ee432fa27d426e85a83 (patch)
tree2ac8fd5f33a732848b76747959de9b33af3db7ad /drivers/net/ethernet/ti/netcp_ethss.c
parentnet: netcp: fix cleanup interface list in netcp_remove() (diff)
downloadlinux-dev-c20afae75c32ec69eccc4ee432fa27d426e85a83.tar.xz
linux-dev-c20afae75c32ec69eccc4ee432fa27d426e85a83.zip
net: netcp: ethss: fix up incorrect use of list api
The code seems to assume a null is returned when the list is empty from first_sec_slave() to break the loop which is incorrect. Fix the code by using list_empty(). Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ti/netcp_ethss.c')
-rw-r--r--drivers/net/ethernet/ti/netcp_ethss.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
index a21881219865..d11d6172941a 100644
--- a/drivers/net/ethernet/ti/netcp_ethss.c
+++ b/drivers/net/ethernet/ti/netcp_ethss.c
@@ -2508,10 +2508,9 @@ static void free_secondary_ports(struct gbe_priv *gbe_dev)
{
struct gbe_slave *slave;
- for (;;) {
+ while (!list_empty(&gbe_dev->secondary_slaves)) {
slave = first_sec_slave(gbe_dev);
- if (!slave)
- break;
+
if (slave->phy)
phy_disconnect(slave->phy);
list_del(&slave->slave_list);