Re: [PATCH] crypto: hisilicon/qm - add missing pci_dev_put() in q_num_set()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2022/11/11 18:00, Xiongfeng Wang wrote:
> pci_get_device() will increase the reference count for the returned
> pci_dev. We need to use pci_dev_put() to decrease the reference count
> before q_num_set() returns.
> 
> Signed-off-by: Xiongfeng Wang <wangxiongfeng2@xxxxxxxxxx>
> ---
>  include/linux/hisi_acc_qm.h | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/hisi_acc_qm.h b/include/linux/hisi_acc_qm.h
> index e230c7c46110..c3618255b150 100644
> --- a/include/linux/hisi_acc_qm.h
> +++ b/include/linux/hisi_acc_qm.h
> @@ -384,14 +384,14 @@ struct hisi_qp {
>  static inline int q_num_set(const char *val, const struct kernel_param *kp,
>  			    unsigned int device)
>  {
> -	struct pci_dev *pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI,
> -					      device, NULL);
> +	struct pci_dev *pdev;
>  	u32 n, q_num;
>  	int ret;
>  
>  	if (!val)
>  		return -EINVAL;
>  
> +	pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI, device, NULL);
>  	if (!pdev) {
>  		q_num = min_t(u32, QM_QNUM_V1, QM_QNUM_V2);
>  		pr_info("No device found currently, suppose queue number is %u\n",
> @@ -401,6 +401,8 @@ static inline int q_num_set(const char *val, const struct kernel_param *kp,
>  			q_num = QM_QNUM_V1;
>  		else
>  			q_num = QM_QNUM_V2;
> +
> +		pci_dev_put(pdev);
>  	}
>  
>  	ret = kstrtou32(val, 10, &n);
> 

Looks good!

Reviewed-by: Weili Qian <qianweili@xxxxxxxxxx>

Thanks!



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux