common/mlx5: fix user mode register access command
[dpdk.git] / drivers / net / nfb / nfb_rxmode.c
index 17708c8..2d0b613 100644 (file)
@@ -54,12 +54,13 @@ nfb_eth_promiscuous_get(struct rte_eth_dev *dev)
        struct nc_rxmac_status status;
        status.mac_filter = RXMAC_MAC_FILTER_PROMISCUOUS;
 
-       nc_rxmac_read_status(internals->rxmac[0], &status);
+       if (internals->max_rxmac > 0)
+               nc_rxmac_read_status(internals->rxmac[0], &status);
 
        return (status.mac_filter == RXMAC_MAC_FILTER_PROMISCUOUS);
 }
 
-void
+int
 nfb_eth_allmulticast_enable(struct rte_eth_dev *dev)
 {
        struct pmd_internals *internals = (struct pmd_internals *)
@@ -70,9 +71,11 @@ nfb_eth_allmulticast_enable(struct rte_eth_dev *dev)
                nc_rxmac_mac_filter_enable(internals->rxmac[i],
                        RXMAC_MAC_FILTER_TABLE_BCAST_MCAST);
        }
+
+       return 0;
 }
 
-void
+int
 nfb_eth_allmulticast_disable(struct rte_eth_dev *dev)
 {
        struct pmd_internals *internals = (struct pmd_internals *)
@@ -82,12 +85,14 @@ nfb_eth_allmulticast_disable(struct rte_eth_dev *dev)
 
        /* if multicast is not enabled do nothing */
        if (!nfb_eth_allmulticast_get(dev))
-               return;
+               return 0;
 
        for (i = 0; i < internals->max_rxmac; ++i) {
                nc_rxmac_mac_filter_enable(internals->rxmac[i],
                        internals->rx_filter_original);
        }
+
+       return 0;
 }
 
 int
@@ -98,7 +103,9 @@ nfb_eth_allmulticast_get(struct rte_eth_dev *dev)
 
        struct nc_rxmac_status status;
        status.mac_filter = RXMAC_MAC_FILTER_PROMISCUOUS;
-       nc_rxmac_read_status(internals->rxmac[0], &status);
+
+       if (internals->max_rxmac > 0)
+               nc_rxmac_read_status(internals->rxmac[0], &status);
 
        return (status.mac_filter == RXMAC_MAC_FILTER_TABLE_BCAST_MCAST);
 }