]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
nfp: pass ctrl_bar pointer to nfp_net_alloc
authorJakub Kicinski <jakub.kicinski@netronome.com>
Fri, 9 Nov 2018 03:50:34 +0000 (19:50 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Nov 2018 04:48:00 +0000 (20:48 -0800)
Move setting ctrl_bar pointer to the nfp_net_alloc function,
to make sure we can parse capabilities early in the following
patch.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: John Hurley <john.hurley@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_net.h
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
drivers/net/ethernet/netronome/nfp/nfp_net_main.c
drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c

index 6f0c37d09256dbdff658be7b65ee7394857dd801..dda02fefc8064283e58af5faf21910fe36842e9f 100644 (file)
@@ -851,7 +851,7 @@ void nfp_net_get_fw_version(struct nfp_net_fw_version *fw_ver,
                            void __iomem *ctrl_bar);
 
 struct nfp_net *
-nfp_net_alloc(struct pci_dev *pdev, bool needs_netdev,
+nfp_net_alloc(struct pci_dev *pdev, void __iomem *ctrl_bar, bool needs_netdev,
              unsigned int max_tx_rings, unsigned int max_rx_rings);
 void nfp_net_free(struct nfp_net *nn);
 
index 6bddfcfdec349c29c29cbf0c71dda7a0c1fde27a..54ce8353715fc05fa5b6a722028b4f13b079a7a0 100644 (file)
@@ -3560,6 +3560,7 @@ void nfp_net_info(struct nfp_net *nn)
 /**
  * nfp_net_alloc() - Allocate netdev and related structure
  * @pdev:         PCI device
+ * @ctrl_bar:     PCI IOMEM with vNIC config memory
  * @needs_netdev: Whether to allocate a netdev for this vNIC
  * @max_tx_rings: Maximum number of TX rings supported by device
  * @max_rx_rings: Maximum number of RX rings supported by device
@@ -3570,9 +3571,9 @@ void nfp_net_info(struct nfp_net *nn)
  *
  * Return: NFP Net device structure, or ERR_PTR on error.
  */
-struct nfp_net *nfp_net_alloc(struct pci_dev *pdev, bool needs_netdev,
-                             unsigned int max_tx_rings,
-                             unsigned int max_rx_rings)
+struct nfp_net *
+nfp_net_alloc(struct pci_dev *pdev, void __iomem *ctrl_bar, bool needs_netdev,
+             unsigned int max_tx_rings, unsigned int max_rx_rings)
 {
        struct nfp_net *nn;
 
@@ -3594,6 +3595,7 @@ struct nfp_net *nfp_net_alloc(struct pci_dev *pdev, bool needs_netdev,
        }
 
        nn->dp.dev = &pdev->dev;
+       nn->dp.ctrl_bar = ctrl_bar;
        nn->pdev = pdev;
 
        nn->max_tx_rings = max_tx_rings;
index 1e7d20468a34717945e1fd9950928e1b914192ba..08f5fdbd8e41a6480637a906ee0052e19c36d4cc 100644 (file)
@@ -116,13 +116,13 @@ nfp_net_pf_alloc_vnic(struct nfp_pf *pf, bool needs_netdev,
        n_rx_rings = readl(ctrl_bar + NFP_NET_CFG_MAX_RXRINGS);
 
        /* Allocate and initialise the vNIC */
-       nn = nfp_net_alloc(pf->pdev, needs_netdev, n_tx_rings, n_rx_rings);
+       nn = nfp_net_alloc(pf->pdev, ctrl_bar, needs_netdev,
+                          n_tx_rings, n_rx_rings);
        if (IS_ERR(nn))
                return nn;
 
        nn->app = pf->app;
        nfp_net_get_fw_version(&nn->fw_ver, ctrl_bar);
-       nn->dp.ctrl_bar = ctrl_bar;
        nn->tx_bar = qc_bar + tx_base * NFP_QCP_QUEUE_ADDR_SZ;
        nn->rx_bar = qc_bar + rx_base * NFP_QCP_QUEUE_ADDR_SZ;
        nn->dp.is_vf = 0;
index d2c1e9ea5668b23087d080b6dfd99181f51c9ccd..1145849ca7bac044195f0778db8d882e37b9b8ba 100644 (file)
@@ -172,7 +172,7 @@ static int nfp_netvf_pci_probe(struct pci_dev *pdev,
        rx_bar_off = NFP_PCIE_QUEUE(startq);
 
        /* Allocate and initialise the netdev */
-       nn = nfp_net_alloc(pdev, true, max_tx_rings, max_rx_rings);
+       nn = nfp_net_alloc(pdev, ctrl_bar, true, max_tx_rings, max_rx_rings);
        if (IS_ERR(nn)) {
                err = PTR_ERR(nn);
                goto err_ctrl_unmap;
@@ -180,7 +180,6 @@ static int nfp_netvf_pci_probe(struct pci_dev *pdev,
        vf->nn = nn;
 
        nn->fw_ver = fw_ver;
-       nn->dp.ctrl_bar = ctrl_bar;
        nn->dp.is_vf = 1;
        nn->stride_tx = stride;
        nn->stride_rx = stride;