Re: [PATCH v7 02/13] xen/pvcalls: implement frontend disconnect

From: Boris Ostrovsky
Date: Thu Oct 26 2017 - 15:40:52 EST


On 10/26/2017 03:11 PM, Stefano Stabellini wrote:
> Introduce a data structure named pvcalls_bedata. It contains pointers to
> the command ring, the event channel, a list of active sockets and a list
> of passive sockets. Lists accesses are protected by a spin_lock.
>
> Introduce a waitqueue to allow waiting for a response on commands sent
> to the backend.
>
> Introduce an array of struct xen_pvcalls_response to store commands
> responses.
>
> Introduce a new struct sock_mapping to keep track of sockets. In this
> patch the struct sock_mapping is minimal, the fields will be added by
> the next patches.
>
> pvcalls_refcount is used to keep count of the outstanding pvcalls users.
> Only remove connections once the refcount is zero.
>
> Implement pvcalls frontend removal function. Go through the list of
> active and passive sockets and free them all, one at a time.
>
> Signed-off-by: Stefano Stabellini <stefano@xxxxxxxxxxx>
> CC: boris.ostrovsky@xxxxxxxxxx
> CC: jgross@xxxxxxxx

Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>