Re: [PATCH] VSOCK: Don't call vsock_stream_has_data in atomic context

From: David Miller
Date: Thu Nov 23 2017 - 11:29:30 EST


From: Jorgen Hansen <jhansen@xxxxxxxxxx>
Date: Tue, 21 Nov 2017 02:46:24 -0800

> When using the host personality, VMCI will grab a mutex for any
> queue pair access. In the detach callback for the vmci vsock
> transport, we call vsock_stream_has_data while holding a spinlock,
> and vsock_stream_has_data will access a queue pair.
>
> To avoid this, we can simply omit calling vsock_stream_has_data
> for host side queue pairs, since the QPs are empty per default
> when the guest has detached.
>
> This bug affects users of VMware Workstation using kernel version
> 4.4 and later.
>
> Testing: Ran vsock tests between guest and host, and verified that
> with this change, the host isn't calling vsock_stream_has_data
> during detach. Ran mixedTest between guest and host using both
> guest and host as server.
>
> Reviewed-by: Adit Ranadive <aditr@xxxxxxxxxx>
> Reviewed-by: Aditya Sarwade <asarwade@xxxxxxxxxx>
> Signed-off-by: Jorgen Hansen <jhansen@xxxxxxxxxx>

This doesn't apply cleanly to the current 'net' GIT tree.