net/failsafe: fix Rx interrupt reinstallation
authorMatan Azrad <matan@mellanox.com>
Wed, 14 Feb 2018 14:47:26 +0000 (14:47 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 14 Feb 2018 15:32:00 +0000 (16:32 +0100)
Fail-safe dev_start() operation can be called by both the application
and the hot-plug alarm mechanism.

The installation of Rx interrupt are triggered from dev_start() in any
time it is called while actually the Rx interrupt should be installed
only by the application calls.

So, each plug-in event causes reinstallation which causes memory leak
and spoils the fail-safe Rx interrupt mechanism.

Trigger the Rx interrupt installation only when it does not exist.

Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
drivers/net/failsafe/failsafe_intr.c

index f6ff04d..6b7f9c1 100644 (file)
@@ -523,7 +523,7 @@ failsafe_rx_intr_install(struct rte_eth_dev *dev)
        const struct rte_intr_conf *const intr_conf =
                        &priv->dev->data->dev_conf.intr_conf;
 
-       if (intr_conf->rxq == 0)
+       if (intr_conf->rxq == 0 || dev->intr_handle != NULL)
                return 0;
        if (fs_rx_intr_vec_install(priv) < 0)
                return -rte_errno;