Re: [PATCH] s390/vfio-ap: do not open code locks for VFIO_GROUP_NOTIFY_SET_KVM notification

Jason Gunthorpe
2021-07-13T17:05:37Z

On Tue, Jul 13, 2021 at 06:45:17PM +0200, Halil Pasic wrote:

> Jason may give it another try to convince us that 0cc00c8d4050 only
> silenced lockdep, but vfio_ap remained prone to deadlocks. To my best
> knowledge using condition variable and a mutex is one of the well known
> ways to implement an rwlock.

The well known pattern is to use a rwsem.

This:
wait_event_cmd(matrix_mdev->wait_for_kvm,
!matrix_mdev->kvm_busy,
mutex_unlock(&matrix_dev->lock),
mutex_lock(&matrix_dev->lock));

Is not really a rwsem, and is invsible to lockdep.

Jason