From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 550BAA0526 for ; Wed, 8 Jul 2020 22:52:21 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0CD6D1DCB3; Wed, 8 Jul 2020 22:52:21 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 9FC0E1DCB3 for ; Wed, 8 Jul 2020 22:52:19 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from viacheslavo@mellanox.com) with SMTP; 8 Jul 2020 23:52:18 +0300 Received: from pegasus12.mtr.labs.mlnx (pegasus12.mtr.labs.mlnx [10.210.17.40]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 068KqI0n007649; Wed, 8 Jul 2020 23:52:18 +0300 Received: from pegasus12.mtr.labs.mlnx (localhost [127.0.0.1]) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7) with ESMTP id 068KqIjw005342; Wed, 8 Jul 2020 20:52:18 GMT Received: (from viacheslavo@localhost) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id 068KqIcq005341; Wed, 8 Jul 2020 20:52:18 GMT X-Authentication-Warning: pegasus12.mtr.labs.mlnx: viacheslavo set sender to viacheslavo@mellanox.com using -f From: Viacheslav Ovsiienko To: dev@dpdk.org Cc: matan@mellanox.com, rasland@mellanox.com, stable@dpdk.org Date: Wed, 8 Jul 2020 20:52:16 +0000 Message-Id: <1594241536-5300-1-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-stable] [PATCH] common/mlx5: fix physical port name pattern recognition X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" This patch makes the Infiniband device physical port name recognition more strict. Currently mlx5 PMD might recognize the names like "pf0sf0" erroneously as "pf0" and the wrong device type (host PF representor) is reported. The names like "pf0sf0" belong to PCI subfunctions which is currently not supported by mlx5 PMD and this false recognition must be eliminated. Fixes: 420bbdae89f2 ("net/mlx5: fix host physical function representor naming") Cc: stable@dpdk.org Signed-off-by: Viacheslav Ovsiienko --- drivers/common/mlx5/linux/mlx5_common_os.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c index e74aa89..7bb3ba6 100644 --- a/drivers/common/mlx5/linux/mlx5_common_os.c +++ b/drivers/common/mlx5/linux/mlx5_common_os.c @@ -89,7 +89,7 @@ mlx5_translate_port_name(const char *port_name_in, struct mlx5_switch_info *port_info_out) { - char pf_c1, pf_c2, vf_c1, vf_c2; + char pf_c1, pf_c2, vf_c1, vf_c2, eol; char *end; int sc_items; @@ -97,9 +97,9 @@ * Check for port-name as a string of the form pf0vf0 * (support kernel ver >= 5.0 or OFED ver >= 4.6). */ - sc_items = sscanf(port_name_in, "%c%c%d%c%c%d", + sc_items = sscanf(port_name_in, "%c%c%d%c%c%d%c", &pf_c1, &pf_c2, &port_info_out->pf_num, - &vf_c1, &vf_c2, &port_info_out->port_name); + &vf_c1, &vf_c2, &port_info_out->port_name, &eol); if (sc_items == 6 && pf_c1 == 'p' && pf_c2 == 'f' && vf_c1 == 'v' && vf_c2 == 'f') { @@ -110,8 +110,8 @@ * Check for port-name as a string of the form p0 * (support kernel ver >= 5.0, or OFED ver >= 4.6). */ - sc_items = sscanf(port_name_in, "%c%d", - &pf_c1, &port_info_out->port_name); + sc_items = sscanf(port_name_in, "%c%d%c", + &pf_c1, &port_info_out->port_name, &eol); if (sc_items == 2 && pf_c1 == 'p') { port_info_out->name_type = MLX5_PHYS_PORT_NAME_TYPE_UPLINK; return; @@ -120,8 +120,8 @@ * Check for port-name as a string of the form pf0 * (support kernel ver >= 5.7 for HPF representor on BF). */ - sc_items = sscanf(port_name_in, "%c%c%d", - &pf_c1, &pf_c2, &port_info_out->pf_num); + sc_items = sscanf(port_name_in, "%c%c%d%c", + &pf_c1, &pf_c2, &port_info_out->pf_num, &eol); if (sc_items == 3 && pf_c1 == 'p' && pf_c2 == 'f') { port_info_out->port_name = -1; port_info_out->name_type = MLX5_PHYS_PORT_NAME_TYPE_PFHPF; -- 1.8.3.1