rocker: move port stop to 'no wait' processing
authorScott Feldman <sfeldma@gmail.com>
Sat, 13 Jun 2015 04:35:50 +0000 (21:35 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Jun 2015 23:06:49 +0000 (16:06 -0700)
rocker_port_stop can be called from atomic and non-atomic contexts.  Since
we can't test what context we're getting called in, do the processing as
'no wait', which will cover all cases.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/rocker/rocker.c

index 8430cb3c7fdc824cccf08a15fae99994459e1133..a06b93da6283abd5bb8e146bf7f0f42b61f8f5b7 100644 (file)
@@ -4004,7 +4004,8 @@ static int rocker_port_stop(struct net_device *dev)
        rocker_port_set_enable(rocker_port, false);
        napi_disable(&rocker_port->napi_rx);
        napi_disable(&rocker_port->napi_tx);
-       rocker_port_fwd_disable(rocker_port, SWITCHDEV_TRANS_NONE, 0);
+       rocker_port_fwd_disable(rocker_port, SWITCHDEV_TRANS_NONE,
+                               ROCKER_OP_FLAG_NOWAIT);
        free_irq(rocker_msix_rx_vector(rocker_port), rocker_port);
        free_irq(rocker_msix_tx_vector(rocker_port), rocker_port);
        rocker_port_dma_rings_fini(rocker_port);