Add the missing unlock before return from function pci_epf_add_vepf() in the error handling case. Fixes: b64215ff2b5e ("PCI: endpoint: Add support to add virtual function in endpoint core") Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx> --- drivers/pci/endpoint/pci-epf-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c index ec286ee5d04c..8aea16380870 100644 --- a/drivers/pci/endpoint/pci-epf-core.c +++ b/drivers/pci/endpoint/pci-epf-core.c @@ -200,8 +200,10 @@ int pci_epf_add_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf) mutex_lock(&epf_pf->lock); vfunc_no = find_first_zero_bit(&epf_pf->vfunction_num_map, BITS_PER_LONG); - if (vfunc_no >= BITS_PER_LONG) + if (vfunc_no >= BITS_PER_LONG) { + mutex_unlock(&epf_pf->lock); return -EINVAL; + } set_bit(vfunc_no, &epf_pf->vfunction_num_map); epf_vf->vfunc_no = vfunc_no;