mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
RDMA/irdma: Fix Passthrough mode in VM
[ Upstream commitb200189626] Using PCI_FUNC macro in a VM, when the device is in passthrough mode does not provide the real function instance. This means that currently, devices will not probe unless the instance in the VM matches the instance in the host. Fix this by getting the pf_id from the LAN during the probe. Fixes:8498a30e1b("RDMA/irdma: Register auxiliary driver and implement private channel OPs") Link: https://lore.kernel.org/r/20220225163211.127-3-shiraz.saleem@intel.com Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com> Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5e96bb45c9
commit
a0051c0531
@@ -1608,7 +1608,7 @@ static enum irdma_status_code irdma_initialize_dev(struct irdma_pci_f *rf)
|
||||
info.fpm_commit_buf = mem.va;
|
||||
|
||||
info.bar0 = rf->hw.hw_addr;
|
||||
info.hmc_fn_id = PCI_FUNC(rf->pcidev->devfn);
|
||||
info.hmc_fn_id = rf->pf_id;
|
||||
info.hw = &rf->hw;
|
||||
status = irdma_sc_dev_init(rf->rdma_ver, &rf->sc_dev, &info);
|
||||
if (status)
|
||||
|
||||
@@ -77,6 +77,7 @@ static void i40iw_fill_device_info(struct irdma_device *iwdev, struct i40e_info
|
||||
rf->rdma_ver = IRDMA_GEN_1;
|
||||
rf->gen_ops.request_reset = i40iw_request_reset;
|
||||
rf->pcidev = cdev_info->pcidev;
|
||||
rf->pf_id = cdev_info->fid;
|
||||
rf->hw.hw_addr = cdev_info->hw_addr;
|
||||
rf->cdev = cdev_info;
|
||||
rf->msix_count = cdev_info->msix_count;
|
||||
|
||||
@@ -226,6 +226,7 @@ static void irdma_fill_device_info(struct irdma_device *iwdev, struct ice_pf *pf
|
||||
rf->hw.hw_addr = pf->hw.hw_addr;
|
||||
rf->pcidev = pf->pdev;
|
||||
rf->msix_count = pf->num_rdma_msix;
|
||||
rf->pf_id = pf->hw.pf_id;
|
||||
rf->msix_entries = &pf->msix_entries[pf->rdma_base_vector];
|
||||
rf->default_vsi.vsi_idx = vsi->vsi_num;
|
||||
rf->protocol_used = IRDMA_ROCE_PROTOCOL_ONLY;
|
||||
|
||||
@@ -257,6 +257,7 @@ struct irdma_pci_f {
|
||||
u8 *mem_rsrc;
|
||||
u8 rdma_ver;
|
||||
u8 rst_to;
|
||||
u8 pf_id;
|
||||
enum irdma_protocol_used protocol_used;
|
||||
u32 sd_type;
|
||||
u32 msix_count;
|
||||
|
||||
Reference in New Issue
Block a user