From patchwork Fri Mar 8 15:40:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Pablo_Casc=C3=B3n?= X-Patchwork-Id: 50995 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0BA302C52; Fri, 8 Mar 2019 16:41:08 +0100 (CET) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by dpdk.org (Postfix) with ESMTP id 58D692B91 for ; Fri, 8 Mar 2019 16:41:06 +0100 (CET) Received: by mail-wm1-f66.google.com with SMTP id n19so12940852wmi.1 for ; Fri, 08 Mar 2019 07:41:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=prZwodoc6Y4ZW5JsWlRE52/uEsG7NJKJX4rDsWw9yzc=; b=PWsAT+m4z/+MDH3kE3Vft/C/FyQ0sqC/4h6cDpwjMwVxtBWLA+5lBxB2rufO0WIlta 1jUlECf8OhtMxnOMa1GxKEpauCsgFWmZWTbq/hJAT9aOdvrQdx3IbMNI8R626LxJIsAW KDZmn9OEpkytGAdnMBSBWPFy5MYXL7rza7GUbqC4m5DUU29GTq1D2ZTOvGxO2oTFF5d1 b3EYL4zdnXQFPL3NjBxhnRwJ+GP5CcEXfWZ3HUiyJRshg5HQtKjiv/lQCL8osXFjUsAS OYcA9AjGam7f39oCeUJrwo6RnKq1tSKpHj7j43nzJd4oFxjRABllNcODKAFI/01ffPK4 oLPA== 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:mime-version :content-transfer-encoding; bh=prZwodoc6Y4ZW5JsWlRE52/uEsG7NJKJX4rDsWw9yzc=; b=MXzBEf/wovgt0jPsughnnfkhIStYw8VvmZvq2Qc/ZFyCenMFnasouAJJMVXyi5ARW6 NwhdqKzjakiKePKuOjqV6dh9tf5aJOFG0MyZUJgTGXeiWQNusFPSH9p3YLiCCyLi0//H DWzhxj8CwRBfscwfgLdCUVwhNwPzbVVdxXU0sZgyMiAMGVy5IQQLAFdkQr2JvngNmmKE DyC9r5p2SI+C6xq+yJlaycBa/u2CwRe34A5J53qLzptQkhijnMbxSO6UBXl/XQ8BrEHx NQcrYETFbjmhBCICQlB44ruRhWxYAAlYdrcAqbjKN7MYOGgHPvTco+oIgdwPJRyANTD+ 3TVQ== X-Gm-Message-State: APjAAAV/NsaYAXVoRnCNiGO7CVAGG5EmQX/rnD2yp7Qxzxb0CTQbUlEU YU7zvaDXbmOXXpWDpJtfjbbIC5rlXcA= X-Google-Smtp-Source: APXvYqzqHFZmAQJ6NsXcHlV2RM8YUQr38bwDsK4GXzXuX952gi/N8VyNwDYrWsLZNfGLRpfLrBJaNg== X-Received: by 2002:a1c:1dcd:: with SMTP id d196mr9543846wmd.146.1552059665660; Fri, 08 Mar 2019 07:41:05 -0800 (PST) Received: from cbvirt1-3.netronome.com ([217.38.71.146]) by smtp.googlemail.com with ESMTPSA id b10sm8135104wru.92.2019.03.08.07.41.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 08 Mar 2019 07:41:04 -0800 (PST) From: =?utf-8?q?Pablo_Casc=C3=B3n?= To: dev@dpdk.org Cc: stable@dpdk.org, =?utf-8?q?Pablo_Casc=C3=B3n?= Date: Fri, 8 Mar 2019 15:40:47 +0000 Message-Id: <1552059647-2725-1-git-send-email-pablo.cascon@netronome.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 1/1] net/nfp: fix set_mac_addr X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Some firmwares, mostly for VFs, do not advertise the feature / capability of changing the MAC address while the interface is up. With such firmware a request to change the MAC address that at the same time also tries to enable the not available feature will be denied by the firmware resulting in an error message like: nfp_net_reconfig(): Error nfp_net reconfig for ctrl: 80000000 update: 800 Fix set_mac_addr by not trying to enable a feature if it is not advertised by the firmware. Fixes: 2fe669f4bcd2 ("net/nfp: support MAC address change") Signed-off-by: Pablo Cascón Acked-by: Alejandro Lucero --- drivers/net/nfp/nfp_net.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index 54c6da9..278e154 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -566,7 +566,10 @@ nfp_set_mac_addr(struct rte_eth_dev *dev, struct ether_addr *mac_addr) /* Signal the NIC about the change */ update = NFP_NET_CFG_UPDATE_MACADDR; - ctrl = hw->ctrl | NFP_NET_CFG_CTRL_LIVE_ADDR; + ctrl = hw->ctrl; + if ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) && + (hw->cap & NFP_NET_CFG_CTRL_LIVE_ADDR)) + ctrl |= NFP_NET_CFG_CTRL_LIVE_ADDR; if (nfp_net_reconfig(hw, ctrl, update) < 0) { PMD_INIT_LOG(INFO, "MAC address update failed"); return -EIO;