[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH net-next] xen-netback: support dynamic unbind/bind
On Mon, Dec 23, 2019 at 09:59:23AM +0000, Paul Durrant wrote: [...] > diff --git a/drivers/net/xen-netback/interface.c > b/drivers/net/xen-netback/interface.c > index f15ba3de6195..0c8a02a1ead7 100644 > --- a/drivers/net/xen-netback/interface.c > +++ b/drivers/net/xen-netback/interface.c > @@ -585,6 +585,7 @@ int xenvif_connect_ctrl(struct xenvif *vif, grant_ref_t > ring_ref, > struct net_device *dev = vif->dev; > void *addr; > struct xen_netif_ctrl_sring *shared; > + RING_IDX rsp_prod, req_prod; > int err; > > err = xenbus_map_ring_valloc(xenvif_to_xenbus_device(vif), > @@ -593,7 +594,14 @@ int xenvif_connect_ctrl(struct xenvif *vif, grant_ref_t > ring_ref, > goto err; > > shared = (struct xen_netif_ctrl_sring *)addr; > - BACK_RING_INIT(&vif->ctrl, shared, XEN_PAGE_SIZE); > + rsp_prod = READ_ONCE(shared->rsp_prod); > + req_prod = READ_ONCE(shared->req_prod); > + > + BACK_RING_ATTACH(&vif->ctrl, shared, rsp_prod, XEN_PAGE_SIZE); > + > + err = -EIO; > + if (req_prod - rsp_prod > RING_SIZE(&vif->ctrl)) > + goto err_unmap; I think it makes more sense to attach the ring after this check has been done, but I can see you want to structure code like this to reuse the unmap error path. So: Reviewed-by: Wei Liu <wei.liu@xxxxxxxxxx> Nice work btw. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |