[lpieralisi-pci:pci/endpoint 2/8] drivers/pci/endpoint/pci-epf-core.c:169 pci_epf_add_vepf() warn: inconsistent returns '&epf_pf->lock'.

From: Dan Carpenter
Date: Mon Aug 23 2021 - 04:37:04 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git pci/endpoint
head: 805ff686a143d77d44ffbb8e34ec3c08e65cb6c4
commit: b64215ff2b5e9fef9208ba652590c51631a0ac1e [2/8] PCI: endpoint: Add support to add virtual function in endpoint core
config: i386-randconfig-m021-20210818 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

smatch warnings:
drivers/pci/endpoint/pci-epf-core.c:169 pci_epf_add_vepf() warn: inconsistent returns '&epf_pf->lock'.

vim +169 drivers/pci/endpoint/pci-epf-core.c

b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 141 int pci_epf_add_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf)
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 142 {
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 143 u32 vfunc_no;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 144
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 145 if (IS_ERR_OR_NULL(epf_pf) || IS_ERR_OR_NULL(epf_vf))
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 146 return -EINVAL;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 147
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 148 if (epf_pf->epc || epf_vf->epc || epf_vf->epf_pf)
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 149 return -EBUSY;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 150
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 151 if (epf_pf->sec_epc || epf_vf->sec_epc)
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 152 return -EBUSY;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 153
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 154 mutex_lock(&epf_pf->lock);
^^^^^^^^^^^^^^^^^^^^^^^^^

b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 155 vfunc_no = find_first_zero_bit(&epf_pf->vfunction_num_map,
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 156 BITS_PER_LONG);
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 157 if (vfunc_no >= BITS_PER_LONG)
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 158 return -EINVAL;
^^^^^^^^^^^^^^
Needs unlock before return.

b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 159
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 160 set_bit(vfunc_no, &epf_pf->vfunction_num_map);
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 161 epf_vf->vfunc_no = vfunc_no;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 162
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 163 epf_vf->epf_pf = epf_pf;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 164 epf_vf->is_vf = true;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 165
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 166 list_add_tail(&epf_vf->list, &epf_pf->pci_vepf);
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 167 mutex_unlock(&epf_pf->lock);
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 168
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 @169 return 0;
b64215ff2b5e9f Kishon Vijay Abraham I 2021-08-11 170 }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx