net/bnxt: support 58818 chip family
[dpdk.git] / examples / vhost / ioat.c
index b2c74f6..71d8a1f 100644 (file)
@@ -1,9 +1,11 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  * Copyright(c) 2010-2020 Intel Corporation
  */
+
+#include <sys/uio.h>
+#ifdef RTE_RAW_IOAT
 #include <rte_rawdev.h>
 #include <rte_ioat_rawdev.h>
-#include <sys/uio.h>
 
 #include "ioat.h"
 #include "main.h"
@@ -36,7 +38,7 @@ open_ioat(const char *value)
        int ret = 0;
        uint16_t i = 0;
        char *dma_arg[MAX_VHOST_DEVICE];
-       uint8_t args_nr;
+       int args_nr;
 
        while (isblank(*addrs))
                addrs++;
@@ -54,9 +56,18 @@ open_ioat(const char *value)
        }
        args_nr = rte_strsplit(substr, strlen(substr),
                        dma_arg, MAX_VHOST_DEVICE, ',');
-       do {
+       if (args_nr <= 0) {
+               ret = -1;
+               goto out;
+       }
+       while (i < args_nr) {
                char *arg_temp = dma_arg[i];
-               rte_strsplit(arg_temp, strlen(arg_temp), ptrs, 2, '@');
+               uint8_t sub_nr;
+               sub_nr = rte_strsplit(arg_temp, strlen(arg_temp), ptrs, 2, '@');
+               if (sub_nr != 2) {
+                       ret = -1;
+                       goto out;
+               }
 
                start = strstr(ptrs[0], "txd");
                if (start == NULL) {
@@ -105,7 +116,7 @@ open_ioat(const char *value)
 
                dma_info->nr++;
                i++;
-       } while (i < args_nr);
+       }
 out:
        free(input);
        return ret;
@@ -199,3 +210,5 @@ ioat_check_completed_copies_cb(int vid, uint16_t queue_id,
        /* Opaque data is not supported */
        return -1;
 }
+
+#endif /* RTE_RAW_IOAT */