ethdev: make stats and xstats reset callbacks return int
[dpdk.git] / drivers / net / liquidio / lio_ethdev.c
index e1eaf9e..ceea878 100644 (file)
@@ -243,17 +243,18 @@ lio_dev_xstats_get_names(struct rte_eth_dev *eth_dev,
 }
 
 /* Reset hw stats for the port */
-static void
+static int
 lio_dev_xstats_reset(struct rte_eth_dev *eth_dev)
 {
        struct lio_device *lio_dev = LIO_DEV(eth_dev);
        struct lio_dev_ctrl_cmd ctrl_cmd;
        struct lio_ctrl_pkt ctrl_pkt;
+       int ret;
 
        if (!lio_dev->intf_open) {
                lio_dev_err(lio_dev, "Port %d down\n",
                            lio_dev->port_id);
-               return;
+               return -EINVAL;
        }
 
        /* flush added to prevent cmd failure
@@ -270,19 +271,21 @@ lio_dev_xstats_reset(struct rte_eth_dev *eth_dev)
        ctrl_pkt.ncmd.s.cmd = LIO_CMD_CLEAR_STATS;
        ctrl_pkt.ctrl_cmd = &ctrl_cmd;
 
-       if (lio_send_ctrl_pkt(lio_dev, &ctrl_pkt)) {
+       ret = lio_send_ctrl_pkt(lio_dev, &ctrl_pkt);
+       if (ret != 0) {
                lio_dev_err(lio_dev, "Failed to send clear stats command\n");
-               return;
+               return ret;
        }
 
-       if (lio_wait_for_ctrl_cmd(lio_dev, &ctrl_cmd)) {
+       ret = lio_wait_for_ctrl_cmd(lio_dev, &ctrl_cmd);
+       if (ret != 0) {
                lio_dev_err(lio_dev, "Clear stats command timed out\n");
-               return;
+               return ret;
        }
 
        /* clear stored per queue stats */
-       RTE_FUNC_PTR_OR_RET(*eth_dev->dev_ops->stats_reset);
-       (*eth_dev->dev_ops->stats_reset)(eth_dev);
+       RTE_FUNC_PTR_OR_ERR_RET(*eth_dev->dev_ops->stats_reset, 0);
+       return (*eth_dev->dev_ops->stats_reset)(eth_dev);
 }
 
 /* Retrieve the device statistics (# packets in/out, # bytes in/out, etc */
@@ -338,7 +341,7 @@ lio_dev_stats_get(struct rte_eth_dev *eth_dev,
        return 0;
 }
 
-static void
+static int
 lio_dev_stats_reset(struct rte_eth_dev *eth_dev)
 {
        struct lio_device *lio_dev = LIO_DEV(eth_dev);
@@ -365,6 +368,8 @@ lio_dev_stats_reset(struct rte_eth_dev *eth_dev)
                        memset(oq_stats, 0, sizeof(struct lio_droq_stats));
                }
        }
+
+       return 0;
 }
 
 static int