> 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()? Regards, Yi Liu