From patchwork Sat Nov 4 15:48:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Horman X-Patchwork-Id: 834201 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="tORYWn7L"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yTjtl4ccmz9sNd for ; Sun, 5 Nov 2017 02:49:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752638AbdKDPtO (ORCPT ); Sat, 4 Nov 2017 11:49:14 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:43100 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752503AbdKDPtL (ORCPT ); Sat, 4 Nov 2017 11:49:11 -0400 Received: by mail-wm0-f65.google.com with SMTP id r68so4507726wmr.0 for ; Sat, 04 Nov 2017 08:49:10 -0700 (PDT) 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:in-reply-to:references; bh=n2ZjJ/uTrVJXqyu8qgcyBK01tdumWThjB/v7m6ckPFI=; b=tORYWn7LEbBrUwoxzIhIUrpFhoqRG7RyEFElducgvViws7kw5MwPyM/mSkFI+7Mf9H mlPJiq1VrfyO1JODkdaiQFK7+TQW9yefBoDmU2DtNTTHzkkYsrrmQIOcct6B5Z0uHcwy xMDUxLYnBgT+vPwGcY3NfDf0aXtiNLc9hLPt1vi8Ox6rh6rNUdw8c6iPuxEvFv34qwF+ aHzl8YMyXXbNr/nc6sXYofK6iYwIYdpWtmCgvkx+q0/3Xok4i/gzEu/ns4g+rvgt226X pPs5CWTzcQVug1jJiMyAVenURcaviKoYLvQGv4W2saGzuZJJC5B4bL9kg9ef41b4au8+ c/3g== 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=n2ZjJ/uTrVJXqyu8qgcyBK01tdumWThjB/v7m6ckPFI=; b=S7SpnXBk3UquX1N6vryk8hoL/oWC6QxiZ9ws4D/EEgOeaL2ZfjTZgwQKQlbimapK+t G/GMB32p9jrHm0BAcTaPPeaMmYtjV7Q7gLYKhJJQlwkkk6NDuO5VkzzhZz1w5TJRDlPW li7Dpsoh7jtNw+oGgh3MPWAnrAdiK7wb2LkHiu9b82Zn0/5Jqkedf8P40SO035Il0LQg c428fsdDDXGQPjJF7Fu4myFWeY6VfdlI55iT50F4zx/vdKXh+OMpPtbhSyrYjRXiItAD H/zFhim3nIsGgPYpWKvF1J/ehhqbaRsJPUoZWY2vXefz2pa/wzvJOIJ+eDdv66MpYLB9 0qKA== X-Gm-Message-State: AMCzsaXM8lOtsPf1WYCYobMjjHEFnK/HNzi+AYsPLN8XGp3uFxb6b9NI YTvV01PCrDnkR/GqWY7yCToktg== X-Google-Smtp-Source: ABhQp+TxSdRC89afq0jeP8h6IuzANRs3ha8RrborO6aIwGL8F1XJSSgkUVD/VBZ9a59IHuB9gCCqow== X-Received: by 10.80.244.2 with SMTP id r2mr13422020edm.26.1509810550223; Sat, 04 Nov 2017 08:49:10 -0700 (PDT) Received: from penelope.horms.nl (penelope-musen.horms.nl. [2001:470:7eb3:404:c685:8ff:fe7c:9971]) by smtp.gmail.com with ESMTPSA id g49sm7552098edg.71.2017.11.04.08.49.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 04 Nov 2017 08:49:09 -0700 (PDT) From: Simon Horman To: David Miller , Jakub Kicinski Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, Dirk van der Merwe , Simon Horman Subject: [net-next 3/7] nfp: refactor nfp_app_reprs_set Date: Sat, 4 Nov 2017 16:48:56 +0100 Message-Id: <20171104154900.21469-4-simon.horman@netronome.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171104154900.21469-1-simon.horman@netronome.com> References: <20171104154900.21469-1-simon.horman@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Dirk van der Merwe The criteria that reprs cannot be replaced with another new set of reprs has been removed. This check is not needed since the only use case that could exercise this at the moment, would be to modify the number of SRIOV VFs without first disabling them. This case is explicitly disallowed in any case and subsequent patches in this series need to be able to replace the running set of reprs. All cases where the return code used to be checked for the nfp_app_reprs_set function have been removed. As stated above, it is not possible for the current code to encounter a case where reprs exist and need to be replaced. Signed-off-by: Dirk van der Merwe Signed-off-by: Simon Horman --- drivers/net/ethernet/netronome/nfp/flower/main.c | 16 ++++------------ drivers/net/ethernet/netronome/nfp/nfp_app.c | 6 ------ 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.c b/drivers/net/ethernet/netronome/nfp/flower/main.c index e46e7c60d491..e0283bb24f06 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/main.c +++ b/drivers/net/ethernet/netronome/nfp/flower/main.c @@ -142,8 +142,8 @@ nfp_flower_spawn_vnic_reprs(struct nfp_app *app, { u8 nfp_pcie = nfp_cppcore_pcie_unit(app->pf->cpp); struct nfp_flower_priv *priv = app->priv; - struct nfp_reprs *reprs, *old_reprs; enum nfp_port_type port_type; + struct nfp_reprs *reprs; const u8 queue = 0; int i, err; @@ -194,11 +194,7 @@ nfp_flower_spawn_vnic_reprs(struct nfp_app *app, reprs->reprs[i]->name); } - old_reprs = nfp_app_reprs_set(app, repr_type, reprs); - if (IS_ERR(old_reprs)) { - err = PTR_ERR(old_reprs); - goto err_reprs_clean; - } + nfp_app_reprs_set(app, repr_type, reprs); return 0; err_reprs_clean: @@ -222,8 +218,8 @@ static int nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv) { struct nfp_eth_table *eth_tbl = app->pf->eth_tbl; - struct nfp_reprs *reprs, *old_reprs; struct sk_buff *ctrl_skb; + struct nfp_reprs *reprs; unsigned int i; int err; @@ -280,11 +276,7 @@ nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv) phys_port, reprs->reprs[phys_port]->name); } - old_reprs = nfp_app_reprs_set(app, NFP_REPR_TYPE_PHYS_PORT, reprs); - if (IS_ERR(old_reprs)) { - err = PTR_ERR(old_reprs); - goto err_reprs_clean; - } + nfp_app_reprs_set(app, NFP_REPR_TYPE_PHYS_PORT, reprs); /* The MAC_REPR control message should be sent after the MAC * representors are registered using nfp_app_reprs_set(). This is diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.c b/drivers/net/ethernet/netronome/nfp/nfp_app.c index 3644d74fe304..955a9f44d244 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_app.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_app.c @@ -106,14 +106,8 @@ nfp_app_reprs_set(struct nfp_app *app, enum nfp_repr_type type, old = rcu_dereference_protected(app->reprs[type], lockdep_is_held(&app->pf->lock)); - if (reprs && old) { - old = ERR_PTR(-EBUSY); - goto exit_unlock; - } - rcu_assign_pointer(app->reprs[type], reprs); -exit_unlock: return old; }