Commit 0dc2d6ff authored by Tatyana Nikolova's avatar Tatyana Nikolova Committed by Jason Gunthorpe

RDMA/irdma: Check vsi pointer before using it

Fix a coverity warning about NULL pointer dereference:
   Dereferencing "vsi", which is known to be "NULL".

Link: https://lore.kernel.org/r/20210708213521.438-1-tatyana.e.nikolova@intel.comReported-by: default avatarcoverity-bot <keescook+coverity-bot@chromium.org>
Addresses-Coverity-ID: 1505164 ("Null pointer dereferences")
Fixes: 8498a30e ("RDMA/irdma: Register auxiliary driver and implement private channel OPs")
Signed-off-by: default avatarMustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: default avatarTatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent b18c7da6
...@@ -215,10 +215,10 @@ static void irdma_remove(struct auxiliary_device *aux_dev) ...@@ -215,10 +215,10 @@ static void irdma_remove(struct auxiliary_device *aux_dev)
pr_debug("INIT: Gen2 PF[%d] device remove success\n", PCI_FUNC(pf->pdev->devfn)); pr_debug("INIT: Gen2 PF[%d] device remove success\n", PCI_FUNC(pf->pdev->devfn));
} }
static void irdma_fill_device_info(struct irdma_device *iwdev, struct ice_pf *pf) static void irdma_fill_device_info(struct irdma_device *iwdev, struct ice_pf *pf,
struct ice_vsi *vsi)
{ {
struct irdma_pci_f *rf = iwdev->rf; struct irdma_pci_f *rf = iwdev->rf;
struct ice_vsi *vsi = ice_get_main_vsi(pf);
rf->cdev = pf; rf->cdev = pf;
rf->gen_ops.register_qset = irdma_lan_register_qset; rf->gen_ops.register_qset = irdma_lan_register_qset;
...@@ -253,12 +253,15 @@ static int irdma_probe(struct auxiliary_device *aux_dev, const struct auxiliary_ ...@@ -253,12 +253,15 @@ static int irdma_probe(struct auxiliary_device *aux_dev, const struct auxiliary_
struct iidc_auxiliary_dev, struct iidc_auxiliary_dev,
adev); adev);
struct ice_pf *pf = iidc_adev->pf; struct ice_pf *pf = iidc_adev->pf;
struct ice_vsi *vsi = ice_get_main_vsi(pf);
struct iidc_qos_params qos_info = {}; struct iidc_qos_params qos_info = {};
struct irdma_device *iwdev; struct irdma_device *iwdev;
struct irdma_pci_f *rf; struct irdma_pci_f *rf;
struct irdma_l2params l2params = {}; struct irdma_l2params l2params = {};
int err; int err;
if (!vsi)
return -EIO;
iwdev = ib_alloc_device(irdma_device, ibdev); iwdev = ib_alloc_device(irdma_device, ibdev);
if (!iwdev) if (!iwdev)
return -ENOMEM; return -ENOMEM;
...@@ -268,7 +271,7 @@ static int irdma_probe(struct auxiliary_device *aux_dev, const struct auxiliary_ ...@@ -268,7 +271,7 @@ static int irdma_probe(struct auxiliary_device *aux_dev, const struct auxiliary_
return -ENOMEM; return -ENOMEM;
} }
irdma_fill_device_info(iwdev, pf); irdma_fill_device_info(iwdev, pf, vsi);
rf = iwdev->rf; rf = iwdev->rf;
if (irdma_ctrl_init_hw(rf)) { if (irdma_ctrl_init_hw(rf)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment