On Thu, Mar 23, 2023 at 07:25:55AM +0000, Tian, Kevin wrote: > > From: Jason Gunthorpe <jgg@xxxxxxxxxx> > > Sent: Wednesday, March 22, 2023 3:15 AM > > +int iommufd_device_attach(struct iommufd_device *idev, u32 *pt_id) > > +{ > > + int rc; > > + > > + rc = iommufd_device_change_pt(idev, pt_id, > > &iommufd_device_do_attach); > > + if (rc) > > + return rc; > > + > > + /* > > + * Pairs with iommufd_device_detach() - catches caller bugs > > attempting > > + * to destroy a device with an attachment. > > + */ > > + refcount_inc(&idev->obj.users); > > + return 0; > > While it's the right thing to do I'm not sure what "catch caller bugs" > mean here. There is no WARN_ON to catch. The WARN_ON is on the destroy path of the device was_destroyed = iommufd_object_destroy_user(idev->ictx, &idev->obj); WARN_ON(!was_destroyed); It is the idev we are incr'ing Jason