Subject: RE: Coverity: irdma_fill_device_info(): Null pointer dereferences

From: "Saleem, Shiraz" <[email-masked]>
Date: Tue, 15 Jun 2021 15:58:52 +0000

> Subject: Coverity: irdma_fill_device_info(): Null pointer dereferences
> 
> Hello!
> 
> This is an experimental semi-automated report about issues detected by Coverity
> from a scan of next-20210608 as part of the linux-next scan project:
> https://scan.coverity.com/projects/linux-next-weekly-scan
> 
> You're getting this email because you were associated with the identified lines of
> code (noted below) that were touched by commits:
> 
>   Wed Jun 2 19:55:16 2021 -0300
>     8498a30e1b94 ("RDMA/irdma: Register auxiliary driver and implement private
> channel OPs")
> 
> Coverity reported the following:
> 
> *** CID 1505164:  Null pointer dereferences  (NULL_RETURNS)
> /drivers/infiniband/hw/irdma/main.c: 230 in irdma_fill_device_info()
> 224     	rf->gen_ops.register_qset = irdma_lan_register_qset;
> 225     	rf->gen_ops.unregister_qset = irdma_lan_unregister_qset;
> 226     	rf->hw.hw_addr = pf->hw.hw_addr;
> 227     	rf->pcidev = pf->pdev;
> 228     	rf->msix_count =  pf->num_rdma_msix;
> 229     	rf->msix_entries = &pf->msix_entries[pf->rdma_base_vector];
> vvv     CID 1505164:  Null pointer dereferences  (NULL_RETURNS)
> vvv     Dereferencing "vsi", which is known to be "NULL".

This is a false +ve IMO.

This vsi object is obtained from the PCI driver's [ice] PF object.
And this pf->vsi is setup in ice_probe and always valid by the time this function
is called from irdma_probe. 

> 230     	rf->default_vsi.vsi_idx = vsi->vsi_num;
> 231     	rf->protocol_used = IRDMA_ROCE_PROTOCOL_ONLY;
> 232     	rf->rdma_ver = IRDMA_GEN_2;
> 233     	rf->rsrc_profile = IRDMA_HMC_PROFILE_DEFAULT;
> 234     	rf->rst_to = IRDMA_RST_TIMEOUT_HZ;
> 235     	rf->gen_ops.request_reset = irdma_request_reset;
> 
> If this is a false positive, please let us know so we can mark it as such, or teach
> the Coverity rules to be smarter. If not, please make sure fixes get into linux-next.
> :) For patches fixing this, please include these lines (but double-check the "Fixes"
> first):
> 
> Reported-by: coverity-bot <[email-masked]>
> Addresses-Coverity-ID: 1505164 ("Null pointer dereferences")
> Fixes: 8498a30e1b94 ("RDMA/irdma: Register auxiliary driver and implement
> private channel OPs")
> 
> Thanks for your attention!
> 
> --
> Coverity-bot