> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Monday, June 26, 2023 8:56 PM > > On Mon, Jun 26, 2023 at 08:34:26AM +0000, Liu, Yi L wrote: > > > From: Jason Gunthorpe <jgg@xxxxxxxxxx> > > > Sent: Saturday, June 24, 2023 12:15 AM > > > > > > } > > > > > > > > +static void vfio_device_get_kvm_safe(struct vfio_device_file *df) > > > > +{ > > > > + spin_lock(&df->kvm_ref_lock); > > > > + if (df->kvm) > > > > + _vfio_device_get_kvm_safe(df->device, df->kvm); > > > > + spin_unlock(&df->kvm_ref_lock); > > > > +} > > > > > > I'm surprised symbol_get() can be called from a spinlock, but it sure > > > looks like it can.. > > > > > > Also moving the if kvm is null test into _vfio_device_get_kvm_safe() > > > will save a few lines. > > > > > > Also shouldn't be called _vfio_device... > > > > Ah, any suggestion on the naming? How about vfio_device_get_kvm_safe_locked()? > > I thought you were using _df_ now for these functions? > I see. Your point is passing df to _vfio_device_get_kvm_safe(() and test the df->kvm within it. Hence rename it to be _df_. I think group path should be ok with this change as well. Let me make it. Regards, Yi Liu