From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by dpdk.org (Postfix) with ESMTP id 616E71B270 for ; Mon, 30 Oct 2017 16:36:06 +0100 (CET) Received: by mail-wr0-f195.google.com with SMTP id k62so13025642wrc.9 for ; Mon, 30 Oct 2017 08:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NN8NvpOREZMhWlATRCr2Pc868BHnRfm3vO9zxKsbnWQ=; b=CJJHUeGJSLPNDni+SWrcAJgDiShpr5yu7LgwgIOUBooT8NUSlkN+7wpfVeriI7INQU FsfVoFBx1Pr5wC0yYIZ0griqkwFXo+QkHiAjSG1A/IFsKCFQjOxDs8460RqRNPZ0xJpR xaxAJN2Vv26DTjtKeZn2GmTXMM8Bh9vQdudgt+Sp1KLgk/CxhVJf1J8oWauIGxVW4OvP d00bm9e/rVNVpH6k0XDNQbocfJSmrSkcNoEHA0rPeRZ2Dz9XOv675y213diSMtaVHBCb lyIr76NNIwqCd4BN0Y9ENLd0bI9Gm9gy0cjDOmOZsC7G+eijSn3dY/mYcWlJ4WvE5jw/ D4aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NN8NvpOREZMhWlATRCr2Pc868BHnRfm3vO9zxKsbnWQ=; b=BKwetypgoCunH+dIDiA7Exu8ni2ilKhtaRmTG/RxpOTjOILtVm0Vku0kTbS60iVSw+ QMCmn2ROBocQ5MMFa62RTreyGHK+AtirdaBsPsin+hJsd/p1iVxxTumXo47byFalj83v 1EievkjHqLYi8RPynTc9MiwSAx0kY9wX0tn1v7ARjLQzIciae8tCJ4n/mbMqRnkUjmtF kIGKDjOYPR0gBRDnx7dk93kJXc7mhsVD2tE2Tg6L2ql0kduyAVgT1hLMAiANvylkigIi mTK6RwVdP/8SleFLwLMfZvTweK2Ot6nOTATdo3b4GvdSC29AcHZC2fYBSSI97HZNbjwK AMOw== X-Gm-Message-State: AMCzsaVCUPJdiWfe7n4llhNV34j4M/1qKAdmuWXcE1bry7XSFWKnyrzI kXd05dOwJZZ4yp4z1xZajK4= X-Google-Smtp-Source: ABhQp+QO8yTj884cYmCHLBj0DAI/Ri1SDgeRILF4CP/ZsHYp4QfEnrEE3F0GX9Zql77r6dSHTgM0Cg== X-Received: by 10.223.178.26 with SMTP id u26mr8305001wra.239.1509377766131; Mon, 30 Oct 2017 08:36:06 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id r63sm5239062wmg.13.2017.10.30.08.36.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 30 Oct 2017 08:36:05 -0700 (PDT) From: luca.boccassi@gmail.com To: Matan Azrad Cc: Nelio Laranjeiro , dpdk stable Date: Mon, 30 Oct 2017 15:34:15 +0000 Message-Id: <20171030153511.13322-12-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171030153511.13322-1-luca.boccassi@gmail.com> References: <20171030153511.13322-1-luca.boccassi@gmail.com> Subject: [dpdk-stable] patch 'net/mlx5: fix probe failure report' has been queued to LTS release 16.11.4 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: , X-List-Received-Date: Mon, 30 Oct 2017 15:36:06 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/01/17. So please shout if anyone has objections. Thanks. Kind regards, Luca Boccassi --- >>From 7251e11ce68acebbcf8a9c30eb494357de67d4dd Mon Sep 17 00:00:00 2001 From: Matan Azrad Date: Sun, 13 Aug 2017 15:25:12 +0300 Subject: [PATCH] net/mlx5: fix probe failure report [ upstream commit e1c3e30508e1c73697a78900cb9004edc83711af ] The corrupted code doesn't return error when probe function fails due to error in device mac address getting. By this way, the probe function may return success even if the ETH dev is not allocated. Hence, the probe caller, for example failsafe PMD, fails when it tries to get ETH dev after the device was plugged out while mlx5 was probing it. The fix adds error report to the probe caller when priv_get_mac fails and in all other failure options which are missing it. By this way, it prevents the unexpected behavior to miss ETH device after the device was probed successfully. This bug was already present in the original code taken from mlx4. Fixes: 771fa900b73a ("mlx5: introduce new driver for Mellanox ConnectX-4 adapters") Fixes: 1371f4df16bc ("mlx5: check port is configured as ethernet device") Signed-off-by: Matan Azrad Acked-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index aa9d2dcb4..86d1e44c7 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -463,8 +463,10 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) DEBUG("using port %u (%08" PRIx32 ")", port, test); ctx = ibv_open_device(ibv_dev); - if (ctx == NULL) + if (ctx == NULL) { + err = ENODEV; goto port_error; + } /* Check port status. */ err = ibv_query_port(ctx, port, &port_attr); @@ -476,6 +478,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) if (port_attr.link_layer != IBV_LINK_LAYER_ETHERNET) { ERROR("port %d is not configured in Ethernet mode", port); + err = EINVAL; goto port_error; } @@ -519,6 +522,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) } if (ibv_exp_query_device(ctx, &exp_device_attr)) { ERROR("ibv_exp_query_device() failed"); + err = ENODEV; goto port_error; } @@ -581,6 +585,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) if (priv_get_mac(priv, &mac.addr_bytes)) { ERROR("cannot get MAC address, is mlx5_en loaded?" " (errno: %s)", strerror(errno)); + err = ENODEV; goto port_error; } INFO("port %u MAC address is %02x:%02x:%02x:%02x:%02x:%02x", -- 2.11.0