[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 08/18] xen/pvcalls: implement connect command



On Tue, 20 Jun 2017, Boris Ostrovsky wrote:
> >> +
> >>  static int pvcalls_back_connect(struct xenbus_device *dev,
> >>                            struct xen_pvcalls_request *req)
> >>  {
> >> +  struct pvcalls_fedata *fedata;
> >> +  int ret = -EINVAL;
> >> +  struct socket *sock;
> >> +  struct sock_mapping *map;
> >> +  struct xen_pvcalls_response *rsp;
> >> +
> >> +  fedata = dev_get_drvdata(&dev->dev);
> >> +
> >> +  ret = sock_create(AF_INET, SOCK_STREAM, 0, &sock);
> >> +  if (ret < 0)
> >> +          goto out;
> >> +  ret = inet_stream_connect(sock, (struct sockaddr *)&req->u.connect.addr,
> >> +                            req->u.connect.len, req->u.connect.flags);
> >> +  if (ret < 0) {
> >> +          sock_release(sock);
> >> +          goto out;
> >> +  }
> >> +  
> >> +  map = pvcalls_new_active_socket(fedata,
> >> +                                  req->u.connect.id,
> >> +                                  req->u.connect.ref,
> >> +                                  req->u.connect.evtchn,
> >> +                                  sock);
> >> +  if (!map) {
> >> +          sock_release(map->sock);
> >> +          goto out;
> > Unnecessary goto.
> 
> Oh, and also ret needs to be set since it will be cleared by
> inet_stream_connect().

Right, thanks!

> >
> >> +  }
> >> +
> >> +out:
> >> +  rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
> >> +  rsp->req_id = req->req_id;
> >> +  rsp->cmd = req->cmd;
> >> +  rsp->u.connect.id = req->u.connect.id;
> >> +  rsp->ret = ret;
> >> +
> >> +  return ret;
> >
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.