summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/rocker/rocker.c
diff options
context:
space:
mode:
authorScott Feldman2015-06-13 06:09:44 +0200
committerDavid S. Miller2015-06-16 01:03:48 +0200
commita07203108494d00efdd8f2fcbf9f2f4f63110e60 (patch)
tree436cf4f6384181f77dfc54710617b30e1543df3d /drivers/net/ethernet/rocker/rocker.c
parentnet: make u64_stats_init() a function (diff)
downloadkernel-qcow2-linux-a07203108494d00efdd8f2fcbf9f2f4f63110e60.tar.gz
kernel-qcow2-linux-a07203108494d00efdd8f2fcbf9f2f4f63110e60.tar.xz
kernel-qcow2-linux-a07203108494d00efdd8f2fcbf9f2f4f63110e60.zip
rocker: gaurd against NULL rocker_port when removing ports
The ports array is filled in as ports are probed, but if probing doesn't finish, we need to stop only those ports that where probed successfully. Check the ports array for NULL to skip un-probed ports when stopping. Signed-off-by: Scott Feldman <sfeldma@gmail.com> Acked-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/rocker/rocker.c')
-rw-r--r--drivers/net/ethernet/rocker/rocker.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c
index 819289e5be4f..c6a6e3c36d90 100644
--- a/drivers/net/ethernet/rocker/rocker.c
+++ b/drivers/net/ethernet/rocker/rocker.c
@@ -4802,6 +4802,8 @@ static void rocker_remove_ports(const struct rocker *rocker)
for (i = 0; i < rocker->port_count; i++) {
rocker_port = rocker->ports[i];
+ if (!rocker_port)
+ continue;
rocker_port_ig_tbl(rocker_port, SWITCHDEV_TRANS_NONE,
ROCKER_OP_FLAG_REMOVE);
unregister_netdev(rocker_port->dev);