get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/134357/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 134357,
    "url": "http://patchwork.dpdk.org/api/patches/134357/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20231114123552.398072-34-huangdengdui@huawei.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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-34-huangdengdui@huawei.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231114123552.398072-34-huangdengdui@huawei.com",
    "date": "2023-11-14T12:35:43",
    "name": "[v3,33/42] net/mlx5: use rte strerror",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "868ad28eee54b809f096f9c4fd37ecd379f74032",
    "submitter": {
        "id": 3066,
        "url": "http://patchwork.dpdk.org/api/people/3066/?format=api",
        "name": "huangdengdui",
        "email": "huangdengdui@huawei.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patchwork.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20231114123552.398072-34-huangdengdui@huawei.com/mbox/",
    "series": [
        {
            "id": 30293,
            "url": "http://patchwork.dpdk.org/api/series/30293/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=30293",
            "date": "2023-11-14T12:35:13",
            "name": "replace strerror",
            "version": 3,
            "mbox": "http://patchwork.dpdk.org/series/30293/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/134357/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/134357/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 AE1B743329;\n\tTue, 14 Nov 2023 13:39:49 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4E40341157;\n\tTue, 14 Nov 2023 13:36:37 +0100 (CET)",
            "from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255])\n by mails.dpdk.org (Postfix) with ESMTP id 67CBD402EC\n for <dev@dpdk.org>; Tue, 14 Nov 2023 13:35:59 +0100 (CET)",
            "from dggpeml500011.china.huawei.com (unknown [172.30.72.55])\n by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4SV5Kg5jp1z1P7pr;\n Tue, 14 Nov 2023 20:32:39 +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 33/42] net/mlx5: use rte strerror",
        "Date": "Tue, 14 Nov 2023 20:35:43 +0800",
        "Message-ID": "<20231114123552.398072-34-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/mlx5/hws/mlx5dr_matcher.c     |  2 +-\n drivers/net/mlx5/linux/mlx5_ethdev_os.c   | 20 ++++++++++----------\n drivers/net/mlx5/linux/mlx5_os.c          | 18 +++++++++---------\n drivers/net/mlx5/linux/mlx5_socket.c      | 16 ++++++++--------\n drivers/net/mlx5/linux/mlx5_verbs.c       |  8 ++++----\n drivers/net/mlx5/mlx5.c                   |  8 ++++----\n drivers/net/mlx5/mlx5_devx.c              |  4 ++--\n drivers/net/mlx5/mlx5_mac.c               |  2 +-\n drivers/net/mlx5/mlx5_rxmode.c            |  8 ++++----\n drivers/net/mlx5/mlx5_rxq.c               |  4 ++--\n drivers/net/mlx5/mlx5_rxtx.c              |  2 +-\n drivers/net/mlx5/mlx5_stats.c             |  4 ++--\n drivers/net/mlx5/mlx5_testpmd.c           | 14 +++++++-------\n drivers/net/mlx5/mlx5_trigger.c           | 12 ++++++------\n drivers/net/mlx5/mlx5_vlan.c              |  2 +-\n drivers/net/mlx5/windows/mlx5_ethdev_os.c |  2 +-\n drivers/net/mlx5/windows/mlx5_os.c        | 12 ++++++------\n 17 files changed, 69 insertions(+), 69 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c b/drivers/net/mlx5/hws/mlx5dr_matcher.c\nindex 4ea161eae6..e5247c1295 100644\n--- a/drivers/net/mlx5/hws/mlx5dr_matcher.c\n+++ b/drivers/net/mlx5/hws/mlx5dr_matcher.c\n@@ -1421,7 +1421,7 @@ mlx5dr_match_template_create(const struct rte_flow_item items[],\n \tif (ret <= 0) {\n \t\tDR_LOG(ERR, \"Unable to process items (%s): %s\",\n \t\t       error.message ? error.message : \"unspecified\",\n-\t\t       strerror(rte_errno));\n+\t\t       rte_strerror(rte_errno));\n \t\tgoto free_template;\n \t}\n \ndiff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c\nindex dd5a0c546d..f2364ff44e 100644\n--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c\n@@ -398,7 +398,7 @@ mlx5_link_update_unlocked_gset(struct rte_eth_dev *dev,\n \tret = mlx5_ifreq(dev, SIOCGIFFLAGS, &ifr);\n \tif (ret) {\n \t\tDRV_LOG(WARNING, \"port %u ioctl(SIOCGIFFLAGS) failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn ret;\n \t}\n \tdev_link = (struct rte_eth_link) {\n@@ -435,7 +435,7 @@ mlx5_link_update_unlocked_gset(struct rte_eth_dev *dev,\n \t\t\tDRV_LOG(WARNING,\n \t\t\t\t\"port %u ioctl(SIOCETHTOOL,\"\n \t\t\t\t\" ETHTOOL_GSET) failed: %s\",\n-\t\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\t\treturn ret;\n \t\t}\n \t}\n@@ -490,7 +490,7 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev,\n \tret = mlx5_ifreq(dev, SIOCGIFFLAGS, &ifr);\n \tif (ret) {\n \t\tDRV_LOG(WARNING, \"port %u ioctl(SIOCGIFFLAGS) failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn ret;\n \t}\n \tdev_link = (struct rte_eth_link) {\n@@ -525,7 +525,7 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev,\n \t\t\tDRV_LOG(DEBUG,\n \t\t\t\t\"port %u ioctl(SIOCETHTOOL,\"\n \t\t\t\t\" ETHTOOL_GLINKSETTINGS) failed: %s\",\n-\t\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\t\treturn ret;\n \t\t}\n \t}\n@@ -543,7 +543,7 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev,\n \t\tDRV_LOG(DEBUG,\n \t\t\t\"port %u ioctl(SIOCETHTOOL,\"\n \t\t\t\"ETHTOOL_GLINKSETTINGS) failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn ret;\n \t}\n \tdev_link.link_speed = (ecmd->speed == UINT32_MAX) ?\n@@ -674,7 +674,7 @@ mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)\n \t\tDRV_LOG(WARNING,\n \t\t\t\"port %u ioctl(SIOCETHTOOL, ETHTOOL_GPAUSEPARAM) failed:\"\n \t\t\t\" %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn ret;\n \t}\n \tfc_conf->autoneg = ethpause.autoneg;\n@@ -727,7 +727,7 @@ mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)\n \t\tDRV_LOG(WARNING,\n \t\t\t\"port %u ioctl(SIOCETHTOOL, ETHTOOL_SPAUSEPARAM)\"\n \t\t\t\" failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn ret;\n \t}\n \treturn 0;\n@@ -1209,7 +1209,7 @@ mlx5_get_module_info(struct rte_eth_dev *dev,\n \tret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr);\n \tif (ret) {\n \t\tDRV_LOG(WARNING, \"port %u ioctl(SIOCETHTOOL) failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn ret;\n \t}\n \tmodinfo->type = info.type;\n@@ -1258,7 +1258,7 @@ int mlx5_get_module_eeprom(struct rte_eth_dev *dev,\n \tret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr);\n \tif (ret)\n \t\tDRV_LOG(WARNING, \"port %u ioctl(SIOCETHTOOL) failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \telse\n \t\trte_memcpy(info->data, eeprom->data, info->length);\n \tmlx5_free(eeprom);\n@@ -1662,7 +1662,7 @@ mlx5_os_stats_init(struct rte_eth_dev *dev)\n \tret = mlx5_os_read_dev_counters(dev, xstats_ctrl->base);\n \tif (ret)\n \t\tDRV_LOG(ERR, \"port %u cannot read device counters: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \tmlx5_os_read_dev_stat(priv, \"out_of_buffer\", &stats_ctrl->imissed_base);\n \tstats_ctrl->imissed = 0;\n free:\ndiff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c\nindex 07f31de5ae..108de96cf7 100644\n--- a/drivers/net/mlx5/linux/mlx5_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_os.c\n@@ -1176,7 +1176,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\terr = mlx5_glue->query_port(sh->cdev->ctx, spawn->phys_port,\n \t\t\t\t\t    &port_attr);\n \t\tif (err) {\n-\t\t\tDRV_LOG(ERR, \"port query failed: %s\", strerror(err));\n+\t\t\tDRV_LOG(ERR, \"port query failed: %s\", rte_strerror(err));\n \t\t\tgoto error;\n \t\t}\n \t\tif (port_attr.link_layer != IBV_LINK_LAYER_ETHERNET) {\n@@ -1191,7 +1191,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\t\tspawn->phys_port);\n \t\tif (err < 0) {\n \t\t\tDRV_LOG(INFO, \"Failed to get netlink port state: %s\",\n-\t\t\t\tstrerror(rte_errno));\n+\t\t\t\trte_strerror(rte_errno));\n \t\t\terr = -rte_errno;\n \t\t\tgoto error;\n \t\t}\n@@ -1342,7 +1342,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\tif (err) {\n \t\t\terr = rte_errno;\n \t\t\tDRV_LOG(ERR, \"unable to allocate switch domain: %s\",\n-\t\t\t\tstrerror(rte_errno));\n+\t\t\t\trte_strerror(rte_errno));\n \t\t\tgoto error;\n \t\t}\n \t\town_domain_id = 1;\n@@ -1433,7 +1433,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \tif (err) {\n \t\terr = rte_errno;\n \t\tDRV_LOG(ERR, \"Failed to process port configure: %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \teth_dev = rte_eth_dev_allocate(name);\n@@ -1479,7 +1479,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u cannot get MAC address, is mlx5_en\"\n \t\t\t\" loaded? (errno: %s)\",\n-\t\t\teth_dev->data->port_id, strerror(rte_errno));\n+\t\t\teth_dev->data->port_id, rte_strerror(rte_errno));\n \t\terr = ENODEV;\n \t\tgoto error;\n \t}\n@@ -1973,7 +1973,7 @@ mlx5_device_bond_pci_match(const char *ibdev_name,\n \t\t\t\t\t   bond_info->ifname);\n \t\tif (ret)\n \t\t\tDRV_LOG(ERR, \"unable to get bond info: %s\",\n-\t\t\t\tstrerror(rte_errno));\n+\t\t\t\trte_strerror(rte_errno));\n \t\telse\n \t\t\tDRV_LOG(INFO, \"PF device %u, bond device %u(%s)\",\n \t\t\t\tifindex, bond_info->ifindex, bond_info->ifname);\n@@ -2688,7 +2688,7 @@ mlx5_os_pci_probe_pf(struct mlx5_common_device *cdev,\n \t\t\t\" encountering an error: %s\",\n \t\t\towner_pci.domain, owner_pci.bus,\n \t\t\towner_pci.devid, owner_pci.function,\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\tret = -rte_errno;\n \t\t/* Roll back. */\n \t\twhile (i--) {\n@@ -2868,13 +2868,13 @@ mlx5_os_net_probe(struct mlx5_common_device *cdev,\n \tret = mlx5_init_once();\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Unable to init PMD global data: %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\treturn -rte_errno;\n \t}\n \tret = mlx5_probe_again_args_validate(cdev, mkvlist);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Probe again parameters are not compatible : %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\treturn -rte_errno;\n \t}\n \tif (mlx5_dev_is_pci(cdev->dev))\ndiff --git a/drivers/net/mlx5/linux/mlx5_socket.c b/drivers/net/mlx5/linux/mlx5_socket.c\nindex 6ce0e59643..cfcbd5a099 100644\n--- a/drivers/net/mlx5/linux/mlx5_socket.c\n+++ b/drivers/net/mlx5/linux/mlx5_socket.c\n@@ -61,13 +61,13 @@ mlx5_pmd_socket_handle(void *cb __rte_unused)\n \t/* Accept the connection from the client. */\n \tconn_sock = accept(server_socket, NULL, NULL);\n \tif (conn_sock < 0) {\n-\t\tDRV_LOG(WARNING, \"connection failed: %s\", strerror(errno));\n+\t\tDRV_LOG(WARNING, \"connection failed: %s\", rte_strerror(errno));\n \t\treturn;\n \t}\n \tret = recvmsg(conn_sock, &msg, MSG_WAITALL);\n \tif (ret != sizeof(struct mlx5_flow_dump_req)) {\n \t\tDRV_LOG(WARNING, \"wrong message received: %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\tgoto error;\n \t}\n \n@@ -138,7 +138,7 @@ mlx5_pmd_socket_handle(void *cb __rte_unused)\n \t} while (ret < 0 && errno == EINTR);\n \tif (ret < 0)\n \t\tDRV_LOG(WARNING, \"failed to send response %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n error:\n \tif (conn_sock >= 0)\n \t\tclose(conn_sock);\n@@ -167,7 +167,7 @@ mlx5_pmd_socket_init(void)\n \tret = socket(AF_UNIX, SOCK_STREAM, 0);\n \tif (ret < 0) {\n \t\tDRV_LOG(WARNING, \"Failed to open mlx5 socket: %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\tgoto error;\n \t}\n \tserver_socket = ret;\n@@ -183,13 +183,13 @@ mlx5_pmd_socket_init(void)\n \tret = bind(server_socket, (const struct sockaddr *)&sun, sizeof(sun));\n \tif (ret < 0) {\n \t\tDRV_LOG(WARNING,\n-\t\t\t\"cannot bind mlx5 socket: %s\", strerror(errno));\n+\t\t\t\"cannot bind mlx5 socket: %s\", rte_strerror(errno));\n \t\tgoto remove;\n \t}\n \tret = listen(server_socket, 0);\n \tif (ret < 0) {\n \t\tDRV_LOG(WARNING, \"cannot listen on mlx5 socket: %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\tgoto remove;\n \t}\n \tserver_intr_handle = mlx5_os_interrupt_handler_create\n@@ -197,7 +197,7 @@ mlx5_pmd_socket_init(void)\n \t\t server_socket, mlx5_pmd_socket_handle, NULL);\n \tif (server_intr_handle == NULL) {\n \t\tDRV_LOG(WARNING, \"cannot register interrupt handler for mlx5 socket: %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\tgoto remove;\n \t}\n \treturn 0;\n@@ -207,7 +207,7 @@ mlx5_pmd_socket_init(void)\n \tclaim_zero(close(server_socket));\n \tserver_socket = -1;\n error:\n-\tDRV_LOG(ERR, \"Cannot initialize socket: %s\", strerror(errno));\n+\tDRV_LOG(ERR, \"Cannot initialize socket: %s\", rte_strerror(errno));\n \treturn -errno;\n }\n \ndiff --git a/drivers/net/mlx5/linux/mlx5_verbs.c b/drivers/net/mlx5/linux/mlx5_verbs.c\nindex b54f3ccd9a..9d41f6fbdf 100644\n--- a/drivers/net/mlx5/linux/mlx5_verbs.c\n+++ b/drivers/net/mlx5/linux/mlx5_verbs.c\n@@ -100,7 +100,7 @@ mlx5_ibv_modify_qp(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type,\n \t\tret = mlx5_glue->modify_qp(obj->qp, &mod, IBV_QP_STATE);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"Cannot change Tx QP state to RESET %s\",\n-\t\t\t\tstrerror(errno));\n+\t\t\t\trte_strerror(errno));\n \t\t\trte_errno = errno;\n \t\t\treturn ret;\n \t\t}\n@@ -111,7 +111,7 @@ mlx5_ibv_modify_qp(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type,\n \tret = mlx5_glue->modify_qp(obj->qp, &mod, IBV_QP_STATE | IBV_QP_PORT);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Cannot change Tx QP state to INIT %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\trte_errno = errno;\n \t\treturn ret;\n \t}\n@@ -119,7 +119,7 @@ mlx5_ibv_modify_qp(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type,\n \tret = mlx5_glue->modify_qp(obj->qp, &mod, IBV_QP_STATE);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Cannot change Tx QP state to RTR %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\trte_errno = errno;\n \t\treturn ret;\n \t}\n@@ -127,7 +127,7 @@ mlx5_ibv_modify_qp(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type,\n \tret = mlx5_glue->modify_qp(obj->qp, &mod, IBV_QP_STATE);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Cannot change Tx QP state to RTS %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\trte_errno = errno;\n \t\treturn ret;\n \t}\ndiff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c\nindex 2cf21a1921..7f95c0db85 100644\n--- a/drivers/net/mlx5/mlx5.c\n+++ b/drivers/net/mlx5/mlx5.c\n@@ -1504,7 +1504,7 @@ mlx5_shared_dev_ctx_args_config(struct mlx5_dev_ctx_shared *sh,\n \t\t\t\t\t  mlx5_dev_args_check_handler, config);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"Failed to process device arguments: %s\",\n-\t\t\t\tstrerror(rte_errno));\n+\t\t\t\trte_strerror(rte_errno));\n \t\t\treturn -rte_errno;\n \t\t}\n \t}\n@@ -1756,7 +1756,7 @@ mlx5_alloc_shared_dev_ctx(const struct mlx5_dev_spawn_data *spawn,\n \terr = mlx5_shared_dev_ctx_args_config(sh, mkvlist, &sh->config);\n \tif (err) {\n \t\tDRV_LOG(ERR, \"Failed to process device configure: %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \tsh->refcnt = 1;\n@@ -2716,7 +2716,7 @@ mlx5_port_args_config(struct mlx5_priv *priv, struct mlx5_kvargs_ctrl *mkvlist,\n \t\t\t\t\t  mlx5_port_args_check_handler, config);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"Failed to process port arguments: %s\",\n-\t\t\t\tstrerror(rte_errno));\n+\t\t\t\trte_strerror(rte_errno));\n \t\t\treturn -rte_errno;\n \t\t}\n \t}\n@@ -2947,7 +2947,7 @@ mlx5_probe_again_args_validate(struct mlx5_common_device *cdev,\n \tret = mlx5_shared_dev_ctx_args_config(sh, mkvlist, config);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Failed to process device configure: %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\tmlx5_free(config);\n \t\treturn ret;\n \t}\ndiff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c\nindex 9fa400fc48..95bed87103 100644\n--- a/drivers/net/mlx5/mlx5_devx.c\n+++ b/drivers/net/mlx5/mlx5_devx.c\n@@ -134,7 +134,7 @@ mlx5_txq_devx_modify(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type,\n \t\tret = mlx5_devx_cmd_modify_sq(obj->sq_obj.sq, &msq_attr);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"Cannot change the Tx SQ state to RESET\"\n-\t\t\t\t\" %s\", strerror(errno));\n+\t\t\t\t\" %s\", rte_strerror(errno));\n \t\t\trte_errno = errno;\n \t\t\treturn ret;\n \t\t}\n@@ -146,7 +146,7 @@ mlx5_txq_devx_modify(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type,\n \t\tret = mlx5_devx_cmd_modify_sq(obj->sq_obj.sq, &msq_attr);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"Cannot change the Tx SQ state to READY\"\n-\t\t\t\t\" %s\", strerror(errno));\n+\t\t\t\t\" %s\", rte_strerror(errno));\n \t\t\trte_errno = errno;\n \t\t\treturn ret;\n \t\t}\ndiff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c\nindex 22a756a52b..f73b7bc394 100644\n--- a/drivers/net/mlx5/mlx5_mac.c\n+++ b/drivers/net/mlx5/mlx5_mac.c\n@@ -100,7 +100,7 @@ mlx5_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index)\n \t\tret = mlx5_traffic_restart(dev);\n \t\tif (ret)\n \t\t\tDRV_LOG(ERR, \"port %u cannot restart traffic: %s\",\n-\t\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t}\n }\n \ndiff --git a/drivers/net/mlx5/mlx5_rxmode.c b/drivers/net/mlx5/mlx5_rxmode.c\nindex f44906e1a7..fae684defb 100644\n--- a/drivers/net/mlx5/mlx5_rxmode.c\n+++ b/drivers/net/mlx5/mlx5_rxmode.c\n@@ -44,7 +44,7 @@ mlx5_promiscuous_enable(struct rte_eth_dev *dev)\n \tret = mlx5_traffic_restart(dev);\n \tif (ret)\n \t\tDRV_LOG(ERR, \"port %u cannot enable promiscuous mode: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \n \t/*\n \t * rte_eth_dev_promiscuous_enable() rollback\n@@ -77,7 +77,7 @@ mlx5_promiscuous_disable(struct rte_eth_dev *dev)\n \tret = mlx5_traffic_restart(dev);\n \tif (ret)\n \t\tDRV_LOG(ERR, \"port %u cannot disable promiscuous mode: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \n \t/*\n \t * rte_eth_dev_promiscuous_disable() rollback\n@@ -117,7 +117,7 @@ mlx5_allmulticast_enable(struct rte_eth_dev *dev)\n \tret = mlx5_traffic_restart(dev);\n \tif (ret)\n \t\tDRV_LOG(ERR, \"port %u cannot enable allmulicast mode: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n error:\n \t/*\n \t * rte_eth_allmulticast_enable() rollback\n@@ -150,7 +150,7 @@ mlx5_allmulticast_disable(struct rte_eth_dev *dev)\n \tret = mlx5_traffic_restart(dev);\n \tif (ret)\n \t\tDRV_LOG(ERR, \"port %u cannot disable allmulicast mode: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n error:\n \t/*\n \t * rte_eth_allmulticast_disable() rollback\ndiff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 88b2dc54b3..341714965b 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -488,7 +488,7 @@ mlx5_rx_queue_stop_primary(struct rte_eth_dev *dev, uint16_t idx)\n \tret = priv->obj_ops.rxq_obj_modify(rxq, MLX5_RXQ_MOD_RDY2RST);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Cannot change Rx WQ state to RESET:  %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\trte_errno = errno;\n \t\treturn ret;\n \t}\n@@ -587,7 +587,7 @@ mlx5_rx_queue_start_primary(struct rte_eth_dev *dev, uint16_t idx)\n \tret = priv->obj_ops.rxq_obj_modify(rxq, MLX5_RXQ_MOD_RST2RDY);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Cannot change Rx WQ state to READY:  %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\trte_errno = errno;\n \t\treturn ret;\n \t}\ndiff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c\nindex 54d410b513..59e49aa5af 100644\n--- a/drivers/net/mlx5/mlx5_rxtx.c\n+++ b/drivers/net/mlx5/mlx5_rxtx.c\n@@ -378,7 +378,7 @@ mlx5_queue_state_modify_primary(struct rte_eth_dev *dev,\n \t\tret = priv->obj_ops.rxq_obj_modify(rxq, sm->state);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"Cannot change Rx WQ state to %u  - %s\",\n-\t\t\t\t\tsm->state, strerror(errno));\n+\t\t\t\t\tsm->state, rte_strerror(errno));\n \t\t\trte_errno = errno;\n \t\t\treturn ret;\n \t\t}\ndiff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c\nindex 615e1d073d..d2a8b8e852 100644\n--- a/drivers/net/mlx5/mlx5_stats.c\n+++ b/drivers/net/mlx5/mlx5_stats.c\n@@ -233,7 +233,7 @@ mlx5_xstats_reset(struct rte_eth_dev *dev)\n \tstats_n = mlx5_os_get_stats_n(dev);\n \tif (stats_n < 0) {\n \t\tDRV_LOG(ERR, \"port %u cannot get stats: %s\", dev->data->port_id,\n-\t\t\tstrerror(-stats_n));\n+\t\t\trte_strerror(-stats_n));\n \t\treturn stats_n;\n \t}\n \tif (xstats_ctrl->stats_n != stats_n)\n@@ -251,7 +251,7 @@ mlx5_xstats_reset(struct rte_eth_dev *dev)\n \tret = mlx5_os_read_dev_counters(dev, counters);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"port %u cannot read device counters: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\tmlx5_free(counters);\n \t\treturn ret;\n \t}\ndiff --git a/drivers/net/mlx5/mlx5_testpmd.c b/drivers/net/mlx5/mlx5_testpmd.c\nindex 403f3a8f83..70d4d0039f 100644\n--- a/drivers/net/mlx5/mlx5_testpmd.c\n+++ b/drivers/net/mlx5/mlx5_testpmd.c\n@@ -199,13 +199,13 @@ mlx5_test_extend_devargs(char *identifier, char *extend)\n \tsocket_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);\n \tif (socket_fd < 0) {\n \t\tTESTPMD_LOG(ERR, \"Failed to create unix socket: %s\\n\",\n-\t\t\t    strerror(errno));\n+\t\t\t    rte_strerror(errno));\n \t\treturn -1;\n \t}\n \trte_strlcpy(un.sun_path, path, sizeof(un.sun_path));\n \tif (connect(socket_fd, (struct sockaddr *)&un, sizeof(un)) < 0) {\n \t\tTESTPMD_LOG(ERR, \"Failed to connect %s: %s\\n\", un.sun_path,\n-\t\t\t    strerror(errno));\n+\t\t\t    rte_strerror(errno));\n \t\tclose(socket_fd);\n \t\treturn -1;\n \t}\n@@ -216,7 +216,7 @@ mlx5_test_extend_devargs(char *identifier, char *extend)\n \t} while (ret < 0 && errno == EINTR);\n \tif (ret < 0) {\n \t\tTESTPMD_LOG(ERR, \"Failed to send request to (%s): %s\\n\", path,\n-\t\t\t    strerror(errno));\n+\t\t\t    rte_strerror(errno));\n \t\tclose(socket_fd);\n \t\treturn -1;\n \t}\n@@ -333,7 +333,7 @@ static void cmd_port_host_shaper_parsed(void *parsed_result,\n \t\tret = mlx5_test_set_port_host_shaper(res->port_num, res->fr,\n \t\t\t\t\t   res->rate_num);\n \tif (ret < 0)\n-\t\tprintf(\"cmd_port_host_shaper error: (%s)\\n\", strerror(-ret));\n+\t\tprintf(\"cmd_port_host_shaper error: (%s)\\n\", rte_strerror(-ret));\n }\n \n static cmdline_parse_token_string_t cmd_port_host_shaper_mlx5 =\n@@ -492,7 +492,7 @@ mlx5_cmd_map_ext_rxq_parsed(void *parsed_result,\n \t\t\tres->sw_queue_id);\n \t\tbreak;\n \tdefault:\n-\t\tfprintf(stderr, \"programming error: (%s)\\n\", strerror(-ret));\n+\t\tfprintf(stderr, \"programming error: (%s)\\n\", rte_strerror(-ret));\n \t}\n }\n \n@@ -565,7 +565,7 @@ mlx5_cmd_unmap_ext_rxq_parsed(void *parsed_result,\n \t\tfprintf(stderr, \"function not implemented or supported\\n\");\n \t\tbreak;\n \tdefault:\n-\t\tfprintf(stderr, \"programming error: (%s)\\n\", strerror(-ret));\n+\t\tfprintf(stderr, \"programming error: (%s)\\n\", rte_strerror(-ret));\n \t}\n }\n \n@@ -648,7 +648,7 @@ mlx5_cmd_set_flow_engine_mode_parsed(void *parsed_result,\n \tif (ret < 0)\n \t\tfprintf(stderr, \"Fail to set flow_engine to %s mode with flag 0x%x, error %s\\n\",\n \t\t\tmode == RTE_PMD_MLX5_FLOW_ENGINE_MODE_ACTIVE ? \"active\" : \"standby\", flag,\n-\t\t\tstrerror(-ret));\n+\t\t\trte_strerror(-ret));\n \telse\n \t\tTESTPMD_LOG(DEBUG, \"Set %d ports flow_engine to %s mode with flag 0x%x\\n\", ret,\n \t\t\tmode == RTE_PMD_MLX5_FLOW_ENGINE_MODE_ACTIVE ? \"active\" : \"standby\", flag);\ndiff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c\nindex 7bdb897612..eecd39d8a7 100644\n--- a/drivers/net/mlx5/mlx5_trigger.c\n+++ b/drivers/net/mlx5/mlx5_trigger.c\n@@ -1190,14 +1190,14 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \t\tret = mlx5_dev_configure_rss_reta(dev);\n \t\tif (ret) {\n \t\t\tDRV_LOG(ERR, \"port %u reta config failed: %s\",\n-\t\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\t\treturn -rte_errno;\n \t\t}\n \t}\n \tret = mlx5_txpp_start(dev);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"port %u Tx packet pacing init failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \tif (mlx5_devx_obj_ops_en(priv->sh) &&\n@@ -1209,7 +1209,7 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \tret = mlx5_txq_start(dev);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"port %u Tx queue allocation failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \tif (priv->config.std_delay_drop || priv->config.hp_delay_drop) {\n@@ -1233,7 +1233,7 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \tret = mlx5_rxq_start(dev);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"port %u Rx queue allocation failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \t/*\n@@ -1243,7 +1243,7 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \tret = mlx5_hairpin_auto_bind(dev);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"port %u hairpin auto binding failed: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \t/* Set started flag here for the following steps like control flow. */\n@@ -1296,7 +1296,7 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \tret = mlx5_flow_start_default(dev);\n \tif (ret) {\n \t\tDRV_LOG(DEBUG, \"port %u failed to start default actions: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \tif (mlx5_dev_ctx_shared_mempool_subscribe(dev) != 0) {\ndiff --git a/drivers/net/mlx5/mlx5_vlan.c b/drivers/net/mlx5/mlx5_vlan.c\nindex e7161b66fe..e2914844c6 100644\n--- a/drivers/net/mlx5/mlx5_vlan.c\n+++ b/drivers/net/mlx5/mlx5_vlan.c\n@@ -118,7 +118,7 @@ mlx5_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on)\n \tret = priv->obj_ops.rxq_obj_modify_vlan_strip(rxq, on);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"Port %u failed to modify object stripping mode:\"\n-\t\t\t\" %s\", dev->data->port_id, strerror(rte_errno));\n+\t\t\t\" %s\", dev->data->port_id, rte_strerror(rte_errno));\n \t\treturn;\n \t}\n \t/* Update related bits in RX queue. */\ndiff --git a/drivers/net/mlx5/windows/mlx5_ethdev_os.c b/drivers/net/mlx5/windows/mlx5_ethdev_os.c\nindex a31e1b5494..9e31ad9be7 100644\n--- a/drivers/net/mlx5/windows/mlx5_ethdev_os.c\n+++ b/drivers/net/mlx5/windows/mlx5_ethdev_os.c\n@@ -212,7 +212,7 @@ mlx5_os_stats_init(struct rte_eth_dev *dev)\n \tret = mlx5_os_read_dev_stat(priv, \"out_of_buffer\", &stats_ctrl->imissed_base);\n \tif (ret)\n \t\tDRV_LOG(ERR, \"port %u cannot read device counters: %s\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \tstats_ctrl->imissed = 0;\n }\n \ndiff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c\nindex b731bdff06..9afc240b46 100644\n--- a/drivers/net/mlx5/windows/mlx5_os.c\n+++ b/drivers/net/mlx5/windows/mlx5_os.c\n@@ -379,7 +379,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \terr = mlx5_glue->devx_init_showdown_event(sh->cdev->ctx);\n \tif (err) {\n \t\tDRV_LOG(ERR, \"failed to init showdown event: %s\",\n-\t\t\tstrerror(errno));\n+\t\t\trte_strerror(errno));\n \t\tgoto error;\n \t}\n \t/* Allocate private eth device data. */\n@@ -427,7 +427,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\tif (err) {\n \t\t\terr = rte_errno;\n \t\t\tDRV_LOG(ERR, \"unable to allocate switch domain: %s\",\n-\t\t\t\tstrerror(rte_errno));\n+\t\t\t\trte_strerror(rte_errno));\n \t\t\tgoto error;\n \t\t}\n \t\town_domain_id = 1;\n@@ -437,7 +437,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \tif (err) {\n \t\terr = rte_errno;\n \t\tDRV_LOG(ERR, \"Failed to process port configure: %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\tgoto error;\n \t}\n \teth_dev = rte_eth_dev_allocate(name);\n@@ -480,7 +480,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u cannot get MAC address, is mlx5_en\"\n \t\t\t\" loaded? (errno: %s).\",\n-\t\t\teth_dev->data->port_id, strerror(rte_errno));\n+\t\t\teth_dev->data->port_id, rte_strerror(rte_errno));\n \t\terr = ENODEV;\n \t\tgoto error;\n \t}\n@@ -730,7 +730,7 @@ mlx5_os_mac_addr_add(struct rte_eth_dev *dev, struct rte_ether_addr *mac,\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u cannot get MAC address, is mlx5_en\"\n \t\t\t\" loaded? (errno: %s)\",\n-\t\t\tdev->data->port_id, strerror(rte_errno));\n+\t\t\tdev->data->port_id, rte_strerror(rte_errno));\n \t\treturn rte_errno;\n \t}\n \tif (!rte_is_same_ether_addr(&lmac, mac)) {\n@@ -849,7 +849,7 @@ mlx5_os_net_probe(struct mlx5_common_device *cdev,\n \tret = mlx5_init_once();\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"unable to init PMD global data: %s\",\n-\t\t\tstrerror(rte_errno));\n+\t\t\trte_strerror(rte_errno));\n \t\treturn -rte_errno;\n \t}\n \tspawn.eth_dev = mlx5_dev_spawn(cdev->dev, &spawn, mkvlist);\n",
    "prefixes": [
        "v3",
        "33/42"
    ]
}