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

From: David Miller
Date: Sat Nov 25 2017 - 14:23:24 EST


From: Jorgen Hansen <jhansen@xxxxxxxxxx>
Date: Fri, 24 Nov 2017 06:25:28 -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.
>
> v2: Rebased on top of recent change to sk_state values
> Reviewed-by: Adit Ranadive <aditr@xxxxxxxxxx>
> Reviewed-by: Aditya Sarwade <asarwade@xxxxxxxxxx>
> Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
> Signed-off-by: Jorgen Hansen <jhansen@xxxxxxxxxx>

Applied, thank you.