diff mbox series

[-next] PCI: endpoint: Fix missing unlock on error in pci_epf_add_vepf()

Message ID 20210819080655.316468-1-weiyongjun1@huawei.com
State New
Headers show
Series [-next] PCI: endpoint: Fix missing unlock on error in pci_epf_add_vepf() | expand

Commit Message

Wei Yongjun Aug. 19, 2021, 8:06 a.m. UTC
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@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
 drivers/pci/endpoint/pci-epf-core.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Kishon Vijay Abraham I Aug. 19, 2021, 12:37 p.m. UTC | #1
Hi Wei,

On 19/08/21 1:36 pm, Wei Yongjun wrote:
> 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@huawei.com>
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>

Thanks for the patch. Since I had to resend the series, I squashed this
patch into the original series

https://lore.kernel.org/r/20210819123343.1951-3-kishon@ti.com

Thanks
Kishon

> ---
>  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;
>
diff mbox series

Patch

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;