Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1651545

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

From Boris Ostrovsky <boris.ostrovsky@oracle.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 11/18] xen/pvcalls: implement accept command
Date 2017-05-26 20:20 +0200
Message-ID <tLs0a-Rn-5@gated-at.bofh.it> (permalink)
References <tIZlE-Tg-7@gated-at.bofh.it> <tIZvj-Xm-3@gated-at.bofh.it> <tIZvl-Xm-47@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


>  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

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: [PATCH v2 11/18] xen/pvcalls: implement accept command Boris Ostrovsky <boris.ostrovsky@oracle.com> - 2017-05-26 20:20 +0200
  Re: [PATCH v2 11/18] xen/pvcalls: implement accept command Stefano Stabellini <sstabellini@kernel.org> - 2017-06-02 21:30 +0200

csiph-web