> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Wednesday, March 22, 2023 3:15 AM > + > + mutex_lock(&idev->igroup->lock); > + > + if (igroup->hwpt == NULL) { > + rc = -EINVAL; > + goto err_unlock; > + } > + > + if (hwpt == igroup->hwpt) { > + mutex_unlock(&idev->igroup->lock); > + return NULL; > + } goto err_unlock; > + > + /* Move the refcounts held by the device_list to the new hwpt */ > + refcount_add(num_devices, &hwpt->obj.users); > + if (num_devices > 1) > + WARN_ON(refcount_sub_and_test(num_devices - 1, > + &old_hwpt->obj.users)); A comment is welcomed to match "caller must destroy old_hwpt". Otherwise looks good. Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>