ethdev: change allmulticast callbacks to return status
[dpdk.git] / drivers / net / cxgbe / cxgbe_ethdev.c
index 3a373ec..7d7be69 100644 (file)
@@ -38,6 +38,8 @@
 #include "cxgbe_pfvf.h"
 #include "cxgbe_flow.h"
 
+int cxgbe_logtype;
+
 /*
  * Macros needed to support the PCI Device ID Table ...
  */
@@ -109,7 +111,7 @@ uint16_t cxgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
        return work_done;
 }
 
-void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
+int cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
                        struct rte_eth_dev_info *device_info)
 {
        struct port_info *pi = eth_dev->data->dev_private;
@@ -144,46 +146,48 @@ void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
        device_info->rx_desc_lim = cxgbe_desc_lim;
        device_info->tx_desc_lim = cxgbe_desc_lim;
        cxgbe_get_speed_caps(pi, &device_info->speed_capa);
+
+       return 0;
 }
 
-void cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)
+int cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = eth_dev->data->dev_private;
        struct adapter *adapter = pi->adapter;
 
-       t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
-                     1, -1, 1, -1, false);
+       return t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
+                            1, -1, 1, -1, false);
 }
 
-void cxgbe_dev_promiscuous_disable(struct rte_eth_dev *eth_dev)
+int cxgbe_dev_promiscuous_disable(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = eth_dev->data->dev_private;
        struct adapter *adapter = pi->adapter;
 
-       t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
-                     0, -1, 1, -1, false);
+       return t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
+                            0, -1, 1, -1, false);
 }
 
-void cxgbe_dev_allmulticast_enable(struct rte_eth_dev *eth_dev)
+int cxgbe_dev_allmulticast_enable(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = eth_dev->data->dev_private;
        struct adapter *adapter = pi->adapter;
 
        /* TODO: address filters ?? */
 
-       t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
-                     -1, 1, 1, -1, false);
+       return t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
+                            -1, 1, 1, -1, false);
 }
 
-void cxgbe_dev_allmulticast_disable(struct rte_eth_dev *eth_dev)
+int cxgbe_dev_allmulticast_disable(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = eth_dev->data->dev_private;
        struct adapter *adapter = pi->adapter;
 
        /* TODO: address filters ?? */
 
-       t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
-                     -1, 0, 1, -1, false);
+       return t4_set_rxmode(adapter, adapter->mbox, pi->viid, -1,
+                            -1, 0, 1, -1, false);
 }
 
 int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
@@ -279,7 +283,9 @@ int cxgbe_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu)
        int err;
        uint16_t new_mtu = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
 
-       cxgbe_dev_info_get(eth_dev, &dev_info);
+       err = cxgbe_dev_info_get(eth_dev, &dev_info);
+       if (err != 0)
+               return err;
 
        /* Must accommodate at least RTE_ETHER_MIN_MTU */
        if (new_mtu < RTE_ETHER_MIN_MTU || new_mtu > dev_info.max_rx_pktlen)
@@ -585,7 +591,12 @@ int cxgbe_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
                  __func__, eth_dev->data->nb_rx_queues, queue_idx, nb_desc,
                  socket_id, mp);
 
-       cxgbe_dev_info_get(eth_dev, &dev_info);
+       err = cxgbe_dev_info_get(eth_dev, &dev_info);
+       if (err != 0) {
+               dev_err(adap, "%s: error during getting ethernet device info",
+                       __func__);
+               return err;
+       }
 
        /* Must accommodate at least RTE_ETHER_MIN_MTU */
        if ((pkt_len < dev_info.min_rx_bufsize) ||
@@ -713,7 +724,7 @@ static int cxgbe_dev_stats_get(struct rte_eth_dev *eth_dev,
 /*
  * Reset port statistics.
  */
-static void cxgbe_dev_stats_reset(struct rte_eth_dev *eth_dev)
+static int cxgbe_dev_stats_reset(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = eth_dev->data->dev_private;
        struct adapter *adapter = pi->adapter;
@@ -736,6 +747,8 @@ static void cxgbe_dev_stats_reset(struct rte_eth_dev *eth_dev)
                txq->stats.tx_bytes = 0;
                txq->stats.mapping_err = 0;
        }
+
+       return 0;
 }
 
 static int cxgbe_flow_ctrl_get(struct rte_eth_dev *eth_dev,
@@ -1218,3 +1231,10 @@ RTE_PMD_REGISTER_KMOD_DEP(net_cxgbe, "* igb_uio | uio_pci_generic | vfio-pci");
 RTE_PMD_REGISTER_PARAM_STRING(net_cxgbe,
                              CXGBE_DEVARG_KEEP_OVLAN "=<0|1> "
                              CXGBE_DEVARG_FORCE_LINK_UP "=<0|1> ");
+
+RTE_INIT(cxgbe_init_log)
+{
+       cxgbe_logtype = rte_log_register("pmd.net.cxgbe");
+       if (cxgbe_logtype >= 0)
+               rte_log_set_level(cxgbe_logtype, RTE_LOG_NOTICE);
+}