On Tue, Feb 08, 2022 at 05:08:01PM -0700, Alex Williamson wrote: > > @@ -477,10 +499,34 @@ static int mlx5vf_pci_get_device_state(struct vfio_device *vdev, > > > > mutex_lock(&mvdev->state_mutex); > > *curr_state = mvdev->mig_state; > > - mutex_unlock(&mvdev->state_mutex); > > + mlx5vf_state_mutex_unlock(mvdev); > > return 0; > > I still can't see why it wouldn't be a both fairly trivial to implement > and a usability improvement if the unlock wrapper returned -EAGAIN on a > deferred reset so we could avoid returning a stale state to the user > and a dead fd in the former case. Thanks, It simply is not useful - again, we always resolve this race that should never happen as though the two events happened consecutively, which is what would normally happen if we could use a simple mutex. We do not need to add any more complexity to deal with this already troublesome thing.. Jason