diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2017-06-06 03:01:48 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-07 19:51:39 +0300 |
commit | a7b1ad0875479e7390eb46e1190e50ffc39707b9 (patch) | |
tree | f50848c3dc450510b7a9a5d9812f082d1c3b9bd2 /drivers/net/ethernet/netronome/nfp/nfp_net_main.c | |
parent | 042f4ba62ff5fbe1428639187578bae39f513e23 (diff) | |
download | linux-a7b1ad0875479e7390eb46e1190e50ffc39707b9.tar.xz |
nfp: allow allocation and initialization of netdev-less vNICs
vNICs used for sending and receiving control messages shouldn't
really have a netdev. Add the ability to initialize vNICs for
netdev-less operation.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net_main.c')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c index 7dd310911d9f..dd2a99fca716 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c @@ -303,7 +303,8 @@ static void nfp_net_pf_free_vnics(struct nfp_pf *pf) } static struct nfp_net * -nfp_net_pf_alloc_vnic(struct nfp_pf *pf, void __iomem *ctrl_bar, +nfp_net_pf_alloc_vnic(struct nfp_pf *pf, bool needs_netdev, + void __iomem *ctrl_bar, void __iomem *tx_bar, void __iomem *rx_bar, int stride, struct nfp_net_fw_version *fw_ver, unsigned int eth_id) @@ -316,7 +317,7 @@ nfp_net_pf_alloc_vnic(struct nfp_pf *pf, void __iomem *ctrl_bar, n_rx_rings = readl(ctrl_bar + NFP_NET_CFG_MAX_RXRINGS); /* Allocate and initialise the vNIC */ - nn = nfp_net_alloc(pf->pdev, n_tx_rings, n_rx_rings); + nn = nfp_net_alloc(pf->pdev, needs_netdev, n_tx_rings, n_rx_rings); if (IS_ERR(nn)) return nn; @@ -395,7 +396,7 @@ nfp_net_pf_alloc_vnics(struct nfp_pf *pf, void __iomem *ctrl_bar, prev_tx_base = tgt_tx_base; prev_rx_base = tgt_rx_base; - nn = nfp_net_pf_alloc_vnic(pf, ctrl_bar, tx_bar, rx_bar, + nn = nfp_net_pf_alloc_vnic(pf, true, ctrl_bar, tx_bar, rx_bar, stride, fw_ver, i); if (IS_ERR(nn)) { err = PTR_ERR(nn); |