summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaricheri, Muralidharan2015-07-29 00:20:13 +0200
committerDavid S. Miller2015-07-30 03:37:40 +0200
commitc20afae75c32ec69eccc4ee432fa27d426e85a83 (patch)
tree2ac8fd5f33a732848b76747959de9b33af3db7ad
parentnet: netcp: fix cleanup interface list in netcp_remove() (diff)
downloadkernel-qcow2-linux-c20afae75c32ec69eccc4ee432fa27d426e85a83.tar.gz
kernel-qcow2-linux-c20afae75c32ec69eccc4ee432fa27d426e85a83.tar.xz
kernel-qcow2-linux-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>
-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);