Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71f8a116 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

nfp: add helper for cleaning up vNICs



We will soon have to invoke more clean up for vNICs.
Move the cleanup callbacks into a helper.

Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1851f93f
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -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);