]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
IB/hfi1: Limit VNIC use of SDMA engines to the available count
authorMichael J. Ruhl <michael.j.ruhl@intel.com>
Wed, 28 Nov 2018 18:19:25 +0000 (10:19 -0800)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 7 Dec 2018 02:50:08 +0000 (19:50 -0700)
VNIC assumes that all SDMA engines have been configured for use.  This is
not necessarily true (i.e. if the count was constrained by the module
parameter).

Update VNICs usage to use the configured count, rather than the hardware
count.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Reviewed-by: Gary Leshner <gary.s.leshner@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hfi1/vnic_main.c

index c9876d9e3cb9d16cf350da8a563740ce15934c4e..a922db58be1441020c665ee16ef081f5f3a2bfaf 100644 (file)
@@ -816,14 +816,14 @@ struct net_device *hfi1_vnic_alloc_rn(struct ib_device *device,
 
        size = sizeof(struct opa_vnic_rdma_netdev) + sizeof(*vinfo);
        netdev = alloc_netdev_mqs(size, name, name_assign_type, setup,
-                                 chip_sdma_engines(dd), dd->num_vnic_contexts);
+                                 dd->num_sdma, dd->num_vnic_contexts);
        if (!netdev)
                return ERR_PTR(-ENOMEM);
 
        rn = netdev_priv(netdev);
        vinfo = opa_vnic_dev_priv(netdev);
        vinfo->dd = dd;
-       vinfo->num_tx_q = chip_sdma_engines(dd);
+       vinfo->num_tx_q = dd->num_sdma;
        vinfo->num_rx_q = dd->num_vnic_contexts;
        vinfo->netdev = netdev;
        rn->free_rdma_netdev = hfi1_vnic_free_rn;