Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/134361/?format=api
https://patches.dpdk.org/api/patches/134361/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20231114123552.398072-39-huangdengdui@huawei.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20231114123552.398072-39-huangdengdui@huawei.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20231114123552.398072-39-huangdengdui@huawei.com", "date": "2023-11-14T12:35:48", "name": "[v3,38/42] net/virtio: use rte strerror", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": true, "hash": "ec96351a4a234779af0476ae067525f70004a824", "submitter": { "id": 3066, "url": "https://patches.dpdk.org/api/people/3066/?format=api", "name": "huangdengdui", "email": "huangdengdui@huawei.com" }, "delegate": { "id": 24651, "url": "https://patches.dpdk.org/api/users/24651/?format=api", "username": "dmarchand", "first_name": "David", "last_name": "Marchand", "email": "david.marchand@redhat.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20231114123552.398072-39-huangdengdui@huawei.com/mbox/", "series": [ { "id": 30293, "url": "https://patches.dpdk.org/api/series/30293/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=30293", "date": "2023-11-14T12:35:13", "name": "replace strerror", "version": 3, "mbox": "https://patches.dpdk.org/series/30293/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/134361/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/134361/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 7E69843329;\n\tTue, 14 Nov 2023 13:40:15 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A2C23427E6;\n\tTue, 14 Nov 2023 13:36:41 +0100 (CET)", "from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255])\n by mails.dpdk.org (Postfix) with ESMTP id 98E87402ED\n for <dev@dpdk.org>; Tue, 14 Nov 2023 13:35:59 +0100 (CET)", "from dggpeml500011.china.huawei.com (unknown [172.30.72.56])\n by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4SV5Kh3kqmz1P8Jh;\n Tue, 14 Nov 2023 20:32:40 +0800 (CST)", "from localhost.huawei.com (10.50.165.33) by\n dggpeml500011.china.huawei.com (7.185.36.84) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.1.2507.31; Tue, 14 Nov 2023 20:35:58 +0800" ], "From": "Dengdui Huang <huangdengdui@huawei.com>", "To": "<dev@dpdk.org>", "CC": "<ferruh.yigit@amd.com>, <stephen@networkplumber.org>,\n <lihuisong@huawei.com>, <fengchengwen@huawei.com>, <liuyonglong@huawei.com>", "Subject": "[PATCH v3 38/42] net/virtio: use rte strerror", "Date": "Tue, 14 Nov 2023 20:35:48 +0800", "Message-ID": "<20231114123552.398072-39-huangdengdui@huawei.com>", "X-Mailer": "git-send-email 2.33.0", "In-Reply-To": "<20231114123552.398072-1-huangdengdui@huawei.com>", "References": "<20231114082539.1858594-44-huangdengdui@huawei.com>\n <20231114123552.398072-1-huangdengdui@huawei.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-Originating-IP": "[10.50.165.33]", "X-ClientProxiedBy": "dggems706-chm.china.huawei.com (10.3.19.183) To\n dggpeml500011.china.huawei.com (7.185.36.84)", "X-CFilter-Loop": "Reflected", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "The function strerror() is insecure in a multi-thread environment.\nThis patch uses rte_strerror() to replace it.\n\nCc: stable@dpdk.org\n\nSigned-off-by: Dengdui Huang <huangdengdui@huawei.com>\nAcked-by: Chengwen Feng <fengchengwen@huawei.com>\n---\n drivers/net/virtio/virtio_user/vhost_kernel.c | 8 +++---\n .../net/virtio/virtio_user/vhost_kernel_tap.c | 25 ++++++++++---------\n drivers/net/virtio/virtio_user/vhost_user.c | 20 +++++++--------\n drivers/net/virtio/virtio_user/vhost_vdpa.c | 12 ++++-----\n .../net/virtio/virtio_user/virtio_user_dev.c | 8 +++---\n drivers/net/virtio/virtio_user_ethdev.c | 6 ++---\n 6 files changed, 40 insertions(+), 39 deletions(-)", "diff": "diff --git a/drivers/net/virtio/virtio_user/vhost_kernel.c b/drivers/net/virtio/virtio_user/vhost_kernel.c\nindex e42bb35935..b1dec119fc 100644\n--- a/drivers/net/virtio/virtio_user/vhost_kernel.c\n+++ b/drivers/net/virtio/virtio_user/vhost_kernel.c\n@@ -92,7 +92,7 @@ vhost_kernel_ioctl(int fd, uint64_t request, void *arg)\n \tret = ioctl(fd, request, arg);\n \tif (ret) {\n \t\tPMD_DRV_LOG(ERR, \"Vhost-kernel ioctl %\"PRIu64\" failed (%s)\",\n-\t\t\t\trequest, strerror(errno));\n+\t\t\t\trequest, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -428,7 +428,7 @@ vhost_kernel_setup(struct virtio_user_dev *dev)\n \tfor (i = 0; i < dev->max_queue_pairs; ++i) {\n \t\tvhostfd = open(dev->path, O_RDWR);\n \t\tif (vhostfd < 0) {\n-\t\t\tPMD_DRV_LOG(ERR, \"fail to open %s, %s\", dev->path, strerror(errno));\n+\t\t\tPMD_DRV_LOG(ERR, \"fail to open %s, %s\", dev->path, rte_strerror(errno));\n \t\t\tgoto err_tapfds;\n \t\t}\n \t\tdata->vhostfds[i] = vhostfd;\n@@ -511,14 +511,14 @@ vhost_kernel_set_backend(int vhostfd, int tapfd)\n \tf.index = 0;\n \tif (ioctl(vhostfd, VHOST_NET_SET_BACKEND, &f) < 0) {\n \t\tPMD_DRV_LOG(ERR, \"VHOST_NET_SET_BACKEND fails, %s\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \n \tf.index = 1;\n \tif (ioctl(vhostfd, VHOST_NET_SET_BACKEND, &f) < 0) {\n \t\tPMD_DRV_LOG(ERR, \"VHOST_NET_SET_BACKEND fails, %s\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \ndiff --git a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c\nindex 611e2e25ec..4542ccbf04 100644\n--- a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c\n+++ b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c\n@@ -13,6 +13,7 @@\n #include <limits.h>\n \n #include <rte_ether.h>\n+#include <rte_errno.h>\n \n #include \"vhost_kernel_tap.h\"\n #include \"../virtio_logs.h\"\n@@ -27,12 +28,12 @@ tap_support_features(unsigned int *tap_features)\n \ttapfd = open(PATH_NET_TUN, O_RDWR);\n \tif (tapfd < 0) {\n \t\tPMD_DRV_LOG(ERR, \"fail to open %s: %s\",\n-\t\t\t PATH_NET_TUN, strerror(errno));\n+\t\t\t PATH_NET_TUN, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \n \tif (ioctl(tapfd, TUNGETFEATURES, tap_features) == -1) {\n-\t\tPMD_DRV_LOG(ERR, \"TUNGETFEATURES failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"TUNGETFEATURES failed: %s\", rte_strerror(errno));\n \t\tclose(tapfd);\n \t\treturn -1;\n \t}\n@@ -49,11 +50,11 @@ tap_open(const char *ifname, unsigned int r_flags, bool multi_queue)\n \n \ttapfd = open(PATH_NET_TUN, O_RDWR);\n \tif (tapfd < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"fail to open %s: %s\", PATH_NET_TUN, strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"fail to open %s: %s\", PATH_NET_TUN, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \tif (fcntl(tapfd, F_SETFL, O_NONBLOCK) < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"fcntl tapfd failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"fcntl tapfd failed: %s\", rte_strerror(errno));\n \t\tclose(tapfd);\n \t\treturn -1;\n \t}\n@@ -68,12 +69,12 @@ tap_open(const char *ifname, unsigned int r_flags, bool multi_queue)\n \t\tif (multi_queue) {\n \t\t\tPMD_DRV_LOG(DEBUG,\n \t\t\t\t\"TUNSETIFF failed (will retry without IFF_MULTI_QUEUE): %s\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\t\tmulti_queue = false;\n \t\t\tgoto retry_mono_q;\n \t\t}\n \n-\t\tPMD_DRV_LOG(ERR, \"TUNSETIFF failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"TUNSETIFF failed: %s\", rte_strerror(errno));\n \t\tclose(tapfd);\n \t\ttapfd = -1;\n \t}\n@@ -88,7 +89,7 @@ tap_get_name(int tapfd, char **name)\n \n \tmemset(&ifr, 0, sizeof(ifr));\n \tif (ioctl(tapfd, TUNGETIFF, (void *)&ifr) == -1) {\n-\t\tPMD_DRV_LOG(ERR, \"TUNGETIFF failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"TUNGETIFF failed: %s\", rte_strerror(errno));\n \t\treturn -1;\n \t}\n \tret = asprintf(name, \"%s\", ifr.ifr_name);\n@@ -104,7 +105,7 @@ tap_get_flags(int tapfd, unsigned int *tap_flags)\n \n \tmemset(&ifr, 0, sizeof(ifr));\n \tif (ioctl(tapfd, TUNGETIFF, (void *)&ifr) == -1) {\n-\t\tPMD_DRV_LOG(ERR, \"TUNGETIFF failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"TUNGETIFF failed: %s\", rte_strerror(errno));\n \t\treturn -1;\n \t}\n \t*tap_flags = ifr.ifr_flags;\n@@ -120,7 +121,7 @@ tap_set_mac(int tapfd, uint8_t *mac)\n \tifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;\n \tmemcpy(ifr.ifr_hwaddr.sa_data, mac, RTE_ETHER_ADDR_LEN);\n \tif (ioctl(tapfd, SIOCSIFHWADDR, (void *)&ifr) == -1) {\n-\t\tPMD_DRV_LOG(ERR, \"SIOCSIFHWADDR failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"SIOCSIFHWADDR failed: %s\", rte_strerror(errno));\n \t\treturn -1;\n \t}\n \treturn 0;\n@@ -155,7 +156,7 @@ vhost_kernel_tap_set_offload(int fd, uint64_t features)\n \t\toffload &= ~TUN_F_UFO;\n \t\tif (ioctl(fd, TUNSETOFFLOAD, offload) != 0) {\n \t\t\tPMD_DRV_LOG(ERR, \"TUNSETOFFLOAD ioctl() failed: %s\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\t\treturn -1;\n \t\t}\n \t}\n@@ -175,12 +176,12 @@ vhost_kernel_tap_setup(int tapfd, int hdr_size, uint64_t features)\n \t * max_mem_regions, supported in newer version linux kernel\n \t */\n \tif (ioctl(tapfd, TUNSETVNETHDRSZ, &hdr_size) < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"TUNSETVNETHDRSZ failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"TUNSETVNETHDRSZ failed: %s\", rte_strerror(errno));\n \t\treturn -1;\n \t}\n \n \tif (ioctl(tapfd, TUNSETSNDBUF, &sndbuf) < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"TUNSETSNDBUF failed: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"TUNSETSNDBUF failed: %s\", rte_strerror(errno));\n \t\treturn -1;\n \t}\n \ndiff --git a/drivers/net/virtio/virtio_user/vhost_user.c b/drivers/net/virtio/virtio_user/vhost_user.c\nindex 3c05ac9cc0..e079c726da 100644\n--- a/drivers/net/virtio/virtio_user/vhost_user.c\n+++ b/drivers/net/virtio/virtio_user/vhost_user.c\n@@ -135,7 +135,7 @@ vhost_user_write(int fd, struct vhost_user_msg *msg, int *fds, int fd_num)\n \t} while (r < 0 && errno == EINTR);\n \n \tif (r < 0)\n-\t\tPMD_DRV_LOG(ERR, \"Failed to send msg: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"Failed to send msg: %s\", rte_strerror(errno));\n \n \treturn r;\n }\n@@ -148,7 +148,7 @@ vhost_user_read(int fd, struct vhost_user_msg *msg)\n \n \tret = recv(fd, (void *)msg, sz_hdr, 0);\n \tif (ret < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"Failed to recv msg header: %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"Failed to recv msg header: %s\", rte_strerror(errno));\n \t\treturn -1;\n \t} else if (ret < sz_hdr) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to recv msg hdr: %d instead of %d.\",\n@@ -174,7 +174,7 @@ vhost_user_read(int fd, struct vhost_user_msg *msg)\n \tif (sz_payload) {\n \t\tret = recv(fd, (void *)((char *)msg + sz_hdr), sz_payload, 0);\n \t\tif (ret < 0) {\n-\t\t\tPMD_DRV_LOG(ERR, \"Failed to recv msg payload: %s\", strerror(errno));\n+\t\t\tPMD_DRV_LOG(ERR, \"Failed to recv msg payload: %s\", rte_strerror(errno));\n \t\t\treturn -1;\n \t\t} else if (ret < sz_payload) {\n \t\t\tPMD_DRV_LOG(ERR, \"Failed to recv msg payload: %d instead of %u.\",\n@@ -749,7 +749,7 @@ vhost_user_start_server(struct virtio_user_dev *dev, struct sockaddr_un *un)\n \tret = bind(fd, (struct sockaddr *)un, sizeof(*un));\n \tif (ret < 0) {\n \t\tPMD_DRV_LOG(ERR, \"failed to bind to %s: %s; remove it and try again\",\n-\t\t\t dev->path, strerror(errno));\n+\t\t\t dev->path, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \tret = listen(fd, MAX_VIRTIO_USER_BACKLOG);\n@@ -760,13 +760,13 @@ vhost_user_start_server(struct virtio_user_dev *dev, struct sockaddr_un *un)\n \tdata->vhostfd = accept(fd, NULL, NULL);\n \tif (data->vhostfd < 0) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to accept initial client connection (%s)\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \n \tflag = fcntl(fd, F_GETFL);\n \tif (fcntl(fd, F_SETFL, flag | O_NONBLOCK) < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"fcntl failed, %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"fcntl failed, %s\", rte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -834,15 +834,15 @@ vhost_user_setup(struct virtio_user_dev *dev)\n \n \tfd = socket(AF_UNIX, SOCK_STREAM, 0);\n \tif (fd < 0) {\n-\t\tPMD_DRV_LOG(ERR, \"socket() error, %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(ERR, \"socket() error, %s\", rte_strerror(errno));\n \t\tgoto err_data;\n \t}\n \n \tflag = fcntl(fd, F_GETFD);\n \tif (flag == -1)\n-\t\tPMD_DRV_LOG(WARNING, \"fcntl get fd failed, %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(WARNING, \"fcntl get fd failed, %s\", rte_strerror(errno));\n \telse if (fcntl(fd, F_SETFD, flag | FD_CLOEXEC) < 0)\n-\t\tPMD_DRV_LOG(WARNING, \"fcntl set fd failed, %s\", strerror(errno));\n+\t\tPMD_DRV_LOG(WARNING, \"fcntl set fd failed, %s\", rte_strerror(errno));\n \n \tmemset(&un, 0, sizeof(un));\n \tun.sun_family = AF_UNIX;\n@@ -856,7 +856,7 @@ vhost_user_setup(struct virtio_user_dev *dev)\n \t\t}\n \t} else {\n \t\tif (connect(fd, (struct sockaddr *)&un, sizeof(un)) < 0) {\n-\t\t\tPMD_DRV_LOG(ERR, \"connect error, %s\", strerror(errno));\n+\t\t\tPMD_DRV_LOG(ERR, \"connect error, %s\", rte_strerror(errno));\n \t\t\tgoto err_socket;\n \t\t}\n \t\tdata->vhostfd = fd;\ndiff --git a/drivers/net/virtio/virtio_user/vhost_vdpa.c b/drivers/net/virtio/virtio_user/vhost_vdpa.c\nindex 2c36b26224..ac0ef2c3f9 100644\n--- a/drivers/net/virtio/virtio_user/vhost_vdpa.c\n+++ b/drivers/net/virtio/virtio_user/vhost_vdpa.c\n@@ -92,7 +92,7 @@ vhost_vdpa_ioctl(int fd, uint64_t request, void *arg)\n \tret = ioctl(fd, request, arg);\n \tif (ret) {\n \t\tPMD_DRV_LOG(ERR, \"Vhost-vDPA ioctl %\"PRIu64\" failed (%s)\",\n-\t\t\t\trequest, strerror(errno));\n+\t\t\t\trequest, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -186,7 +186,7 @@ vhost_vdpa_iotlb_batch_begin(struct virtio_user_dev *dev)\n \n \tif (write(data->vhostfd, &msg, sizeof(msg)) != sizeof(msg)) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to send IOTLB batch begin (%s)\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -212,7 +212,7 @@ vhost_vdpa_iotlb_batch_end(struct virtio_user_dev *dev)\n \n \tif (write(data->vhostfd, &msg, sizeof(msg)) != sizeof(msg)) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to send IOTLB batch end (%s)\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -243,7 +243,7 @@ vhost_vdpa_dma_map(struct virtio_user_dev *dev, void *addr,\n \n \tif (write(data->vhostfd, &msg, sizeof(msg)) != sizeof(msg)) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to send IOTLB update (%s)\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -272,7 +272,7 @@ vhost_vdpa_dma_unmap(struct virtio_user_dev *dev, __rte_unused void *addr,\n \n \tif (write(data->vhostfd, &msg, sizeof(msg)) != sizeof(msg)) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to send IOTLB invalidate (%s)\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\treturn -1;\n \t}\n \n@@ -530,7 +530,7 @@ vhost_vdpa_setup(struct virtio_user_dev *dev)\n \tdata->vhostfd = open(dev->path, O_RDWR);\n \tif (data->vhostfd < 0) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to open %s: %s\",\n-\t\t\t\tdev->path, strerror(errno));\n+\t\t\t\tdev->path, rte_strerror(errno));\n \t\tfree(data);\n \t\treturn -1;\n \t}\ndiff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c\nindex af1f8c8237..ad7537a746 100644\n--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c\n+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c\n@@ -401,13 +401,13 @@ virtio_user_dev_init_notify(struct virtio_user_dev *dev)\n \t\t */\n \t\tcallfd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);\n \t\tif (callfd < 0) {\n-\t\t\tPMD_DRV_LOG(ERR, \"(%s) callfd error, %s\", dev->path, strerror(errno));\n+\t\t\tPMD_DRV_LOG(ERR, \"(%s) callfd error, %s\", dev->path, rte_strerror(errno));\n \t\t\tgoto err;\n \t\t}\n \t\tkickfd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);\n \t\tif (kickfd < 0) {\n \t\t\tclose(callfd);\n-\t\t\tPMD_DRV_LOG(ERR, \"(%s) kickfd error, %s\", dev->path, strerror(errno));\n+\t\t\tPMD_DRV_LOG(ERR, \"(%s) kickfd error, %s\", dev->path, rte_strerror(errno));\n \t\t\tgoto err;\n \t\t}\n \t\tdev->callfds[i] = callfd;\n@@ -1043,7 +1043,7 @@ virtio_user_control_queue_notify(struct virtqueue *vq, void *cookie)\n \n \tif (write(dev->kickfds[vq->vq_queue_index], &buf, sizeof(buf)) < 0)\n \t\tPMD_DRV_LOG(ERR, \"failed to kick backend: %s\",\n-\t\t\t strerror(errno));\n+\t\t\t rte_strerror(errno));\n }\n \n int\n@@ -1264,7 +1264,7 @@ virtio_user_dev_server_reconnect(struct virtio_user_dev *dev)\n \n \tif (dev->ops->get_features(dev, &dev->device_features) < 0) {\n \t\tPMD_INIT_LOG(ERR, \"get_features failed: %s\",\n-\t\t\t strerror(errno));\n+\t\t\t rte_strerror(errno));\n \t\treturn -1;\n \t}\n \ndiff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c\nindex 3a31642899..908afde4fc 100644\n--- a/drivers/net/virtio/virtio_user_ethdev.c\n+++ b/drivers/net/virtio/virtio_user_ethdev.c\n@@ -273,7 +273,7 @@ virtio_user_notify_queue(struct virtio_hw *hw, struct virtqueue *vq)\n \n \tif (write(dev->kickfds[vq->vq_queue_index], &buf, sizeof(buf)) < 0)\n \t\tPMD_DRV_LOG(ERR, \"failed to kick backend: %s\",\n-\t\t\t strerror(errno));\n+\t\t\t rte_strerror(errno));\n }\n \n static int\n@@ -382,7 +382,7 @@ vdpa_dynamic_major_num(void)\n \tfp = fopen(\"/proc/devices\", \"r\");\n \tif (fp == NULL) {\n \t\tPMD_INIT_LOG(ERR, \"Cannot open /proc/devices: %s\",\n-\t\t\t strerror(errno));\n+\t\t\t rte_strerror(errno));\n \t\treturn UNNAMED_MAJOR;\n \t}\n \n@@ -409,7 +409,7 @@ virtio_user_backend_type(const char *path)\n \t\t\treturn VIRTIO_USER_BACKEND_VHOST_USER;\n \n \t\tPMD_INIT_LOG(ERR, \"Stat fails: %s (%s)\", path,\n-\t\t\t strerror(errno));\n+\t\t\t rte_strerror(errno));\n \t\treturn VIRTIO_USER_BACKEND_UNKNOWN;\n \t}\n \n", "prefixes": [ "v3", "38/42" ] }{ "id": 134361, "url": "