staging: dpaa2-ethsw: ignore state interrupts when the interface is not running
authorIoana Ciornei <ioana.ciornei@nxp.com>
Tue, 14 Jul 2020 13:34:27 +0000 (16:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2020 14:22:36 +0000 (16:22 +0200)
Link state interrupts will be transmitted to the DPSW object even though
the user has not yet issued a 'ifconfig up' on a switch interface. Don't
act on those interrupts since there are of no interrest.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20200714133431.17532-3-ioana.ciornei@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethsw/ethsw.c

index 46aa370..b57bc70 100644 (file)
@@ -445,6 +445,12 @@ static int port_carrier_state_sync(struct net_device *netdev)
        struct dpsw_link_state state;
        int err;
 
+       /* Interrupts are received even though no one issued an 'ifconfig up'
+        * on the switch interface. Ignore these link state update interrupts
+        */
+       if (!netif_running(netdev))
+               return 0;
+
        err = dpsw_if_get_link_state(port_priv->ethsw_data->mc_io, 0,
                                     port_priv->ethsw_data->dpsw_handle,
                                     port_priv->idx, &state);