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

Re: [Xen-devel] [PATCH v2 11/18] xen/pvcalls: implement accept command



>  static void __pvcalls_back_accept(struct work_struct *work)
>  {
> +     struct sockpass_mapping *mappass = container_of(
> +             work, struct sockpass_mapping, register_work);
> +     struct sock_mapping *map;
> +     struct pvcalls_ioworker *iow;
> +     struct pvcalls_back_priv *priv;
> +     struct xen_pvcalls_response *rsp;
> +     struct xen_pvcalls_request *req;
> +     void *page = NULL;
> +     int notify;
> +     int ret = -EINVAL;
> +     unsigned long flags;
> +
> +     priv = mappass->priv;
> +     /* We only need to check the value of "cmd" atomically on read. */
> +     spin_lock_irqsave(&mappass->copy_lock, flags);
> +     req = &mappass->reqcopy;
> +     if (req->cmd != PVCALLS_ACCEPT) {
> +             spin_unlock_irqrestore(&mappass->copy_lock, flags);
> +             return;
> +     }
> +     spin_unlock_irqrestore(&mappass->copy_lock, flags);
> +
> +     map = kzalloc(sizeof(*map), GFP_KERNEL);

From here on, the code looks almost identical to connect. Can this be
factored out?

-boris

_______________________________________________
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®.