Re: [PATCH v4 06/13] xen/pvcalls: implement bind command
From: Stefano Stabellini
Date: Fri Oct 06 2017 - 16:35:42 EST
On Thu, 21 Sep 2017, Boris Ostrovsky wrote:
> On 09/15/2017 07:00 PM, Stefano Stabellini wrote:
> > Send PVCALLS_BIND to the backend. Introduce a new structure, part of
> > struct sock_mapping, to store information specific to passive sockets.
> >
> > Introduce a status field to keep track of the status of the passive
> > socket.
> >
> > Signed-off-by: Stefano Stabellini <stefano@xxxxxxxxxxx>
> > CC: boris.ostrovsky@xxxxxxxxxx
> > CC: jgross@xxxxxxxx
> > ---
> > drivers/xen/pvcalls-front.c | 68
> > +++++++++++++++++++++++++++++++++++++++++++++
> > drivers/xen/pvcalls-front.h | 3 ++
> > 2 files changed, 71 insertions(+)
> >
> > diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c
> > index ef511b6..50b6588 100644
> > --- a/drivers/xen/pvcalls-front.c
> > +++ b/drivers/xen/pvcalls-front.c
> > @@ -72,6 +72,13 @@ struct sock_mapping {
> > wait_queue_head_t inflight_conn_req;
> > } active;
> > + struct {
> > + /* Socket status */
> > +#define PVCALLS_STATUS_UNINITALIZED 0
> > +#define PVCALLS_STATUS_BIND 1
> > +#define PVCALLS_STATUS_LISTEN 2
> > + uint8_t status;
> > + } passive;
> > };
> > };
> >
>
>
>
>
>
> > + req->u.bind.id = (uint64_t) map;
>
> Space between cast and variable (this happens in quite a few places)
OK
> > + memcpy(req->u.bind.addr, addr, sizeof(*addr));
> > + req->u.bind.len = addr_len;
> > +
> > + init_waitqueue_head(&map->passive.inflight_accept_req);
>
> This queue is not introduced until patch 8.
I'll move it to patch 8