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!