From patchwork Fri May 26 08:03:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 767306 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3wYzDc2B5jz9s1h for ; Fri, 26 May 2017 18:04:16 +1000 (AEST) 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="dpId0FTd"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S939928AbdEZIEN (ORCPT ); Fri, 26 May 2017 04:04:13 -0400 Received: from mail-pf0-f181.google.com ([209.85.192.181]:34070 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935088AbdEZIDy (ORCPT ); Fri, 26 May 2017 04:03:54 -0400 Received: by mail-pf0-f181.google.com with SMTP id 9so4733884pfj.1 for ; Fri, 26 May 2017 01:03:54 -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=pcIKPHa6c0HPJma2cPJHpMZ0W/Y8IdgtIyY9SPqRYZM=; b=dpId0FTdr8CMLw82DQ1rf8dfUoJ3NLWpXTv3hYoVuadITu36HHMG0MEcSkXyx4Whg1 mKeimIP2mUlee2LHSuOdtLcX/NsH4tTy2u+ldN2+lAowAYgEc6hF2Jpvc0foRFQWSt+g 1oEWq6Pn2kCVnpE45WMXLHnFG0+gaC1vW2f2flKnHhDOZM49HunvC8Qk2xI2sfOhIEJq bAI+qJaRbfGZBKqQ2Orgq3R1LOWfAdqtg5KNZbTE7nuEnQe/JaUL1pZ9qhwikCPycDv5 vO8b2ke/QUoRaF0H/yagUYYFLCRi0zGRQ/Yx93wUKALEOtrmfumb7Mygq/MBlHdFD0sd KFSw== 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=pcIKPHa6c0HPJma2cPJHpMZ0W/Y8IdgtIyY9SPqRYZM=; b=CVTslmEP5xGHYHdoWEfWG/yNFmmShvU/Y5MsZ7VPTKFmBAx/vDy+M/UfRa6ETIXZJU ytgnjnv6fdkd/GVk/jtJ4Oc1Evlfzh+CoauiVulRuSJbRbnhKehdMI2xWQIYoCfOsEfQ DFxZsVnGv57Edm52g6jiwFeLAYnO7ckKer2ZmPp1fXwFlMA0ovr0j3oF0f4nv3VHRGP2 GpmNmRBpj6fyna/IwiCEF+KJ+/zQYw0J/0Qx96stCJ4P84Vr/qqtRJ58hvFWZNEutSga FSh42mZLowL6EyyC1LDz8m4iVQsK29rrShbiayYXVWs3kSTl3T0HBWddczfoK8hg1MO/ VzaQ== X-Gm-Message-State: AODbwcB8mbEjTxzA9fJrJGrUFTwVDnhX7YJj18SAnITWWeu3BjjDbkS/ WySfVHTqq68FAzAy X-Received: by 10.84.195.129 with SMTP id j1mr55805772pld.122.1495785833957; Fri, 26 May 2017 01:03:53 -0700 (PDT) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id s82sm199777pfe.57.2017.05.26.01.03.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 26 May 2017 01:03:53 -0700 (PDT) From: Jakub Kicinski To: netdev@vger.kernel.org Cc: jiri@resnulli.us, oss-drivers@netronome.com, Jakub Kicinski Subject: [PATCH net-next v2 3/6] nfp: add helper for cleaning up vNICs Date: Fri, 26 May 2017 01:03:33 -0700 Message-Id: <20170526080336.32689-4-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170526080336.32689-1-jakub.kicinski@netronome.com> References: <20170526080336.32689-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We will soon have to invoke more clean up for vNICs. Move the cleanup callbacks into a helper. Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c index 8f5a240c8d2f..b0a6ec4fe097 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c @@ -418,6 +418,12 @@ nfp_net_pf_alloc_vnics(struct nfp_pf *pf, void __iomem *ctrl_bar, return err; } +static void nfp_net_pf_clean_vnic(struct nfp_pf *pf, struct nfp_net *nn) +{ + nfp_net_debugfs_dir_clean(&nn->debugfs_dir); + nfp_net_clean(nn); +} + static int nfp_net_pf_spawn_vnics(struct nfp_pf *pf, void __iomem *ctrl_bar, void __iomem *tx_bar, @@ -480,10 +486,8 @@ nfp_net_pf_spawn_vnics(struct nfp_pf *pf, return 0; err_prev_deinit: - list_for_each_entry_continue_reverse(nn, &pf->vnics, vnic_list) { - nfp_net_debugfs_dir_clean(&nn->debugfs_dir); - nfp_net_clean(nn); - } + list_for_each_entry_continue_reverse(nn, &pf->vnics, vnic_list) + nfp_net_pf_clean_vnic(pf, nn); nfp_net_irqs_disable(pf->pdev); err_vec_free: kfree(pf->irq_entries); @@ -585,9 +589,7 @@ static void nfp_net_refresh_vnics(struct work_struct *work) if (!nn->port || nn->port->type != NFP_PORT_INVALID) continue; - nfp_net_debugfs_dir_clean(&nn->debugfs_dir); - nfp_net_clean(nn); - + nfp_net_pf_clean_vnic(pf, nn); nfp_net_pf_free_vnic(pf, nn); } @@ -760,11 +762,8 @@ void nfp_net_pci_remove(struct nfp_pf *pf) if (list_empty(&pf->vnics)) goto out; - list_for_each_entry(nn, &pf->vnics, vnic_list) { - nfp_net_debugfs_dir_clean(&nn->debugfs_dir); - - nfp_net_clean(nn); - } + list_for_each_entry(nn, &pf->vnics, vnic_list) + nfp_net_pf_clean_vnic(pf, nn); nfp_net_pf_free_vnics(pf);