Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752200AbdGYVV6 (ORCPT ); Tue, 25 Jul 2017 17:21:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:46342 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751100AbdGYVV4 (ORCPT ); Tue, 25 Jul 2017 17:21:56 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 39DB5219A9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=sstabellini@kernel.org Date: Tue, 25 Jul 2017 14:21:55 -0700 (PDT) From: Stefano Stabellini X-X-Sender: sstabellini@sstabellini-ThinkPad-X260 To: xen-devel@lists.xen.org cc: linux-kernel@vger.kernel.org, sstabellini@kernel.org, jgross@suse.com, boris.ostrovsky@oracle.com Subject: [PATCH v2 00/13] introduce the Xen PV Calls frontend Message-ID: User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2627 Lines: 63 Hi all, this series introduces the frontend for the newly introduced PV Calls procotol. PV Calls is a paravirtualized protocol that allows the implementation of a set of POSIX functions in a different domain. The PV Calls frontend sends POSIX function calls to the backend, which implements them and returns a value to the frontend and acts on the function call. For more information about PV Calls, please read: https://xenbits.xen.org/docs/unstable/misc/pvcalls.html This patch series only implements the frontend driver. It doesn't attempt to redirect POSIX calls to it. The functions exported in pvcalls-front.h are meant to be used for that. A separate patch series will be sent to use them and hook them into the system. Changes in v2: - use xenbus_read_unsigned when possible - call dev_set_drvdata earlier in pvcalls_front_probe not to dereference a NULL pointer in the error path - set ret appropriately in pvcalls_front_probe - include pvcalls-front.h in pvcalls-front.c - call wake_up only once after the consuming loop in pvcalls_front_event_handler - don't leak "bytes" in case of errors in create_active - call spin_unlock appropriately in case of errors in create_active - remove all BUG_ONs - don't leak newsock->sk in pvcalls_front_accept in case of errors - rename PVCALLS_FRON_MAX_SPIN to PVCALLS_FRONT_MAX_SPIN - return bool from pvcalls_front_read_todo - add a barrier after setting PVCALLS_FLAG_POLL_RET in pvcalls_front_event_handler - remove outdated comment in pvcalls_front_free_map - clear sock->sk->sk_send_head later in pvcalls_front_release - make XEN_PVCALLS_FRONTEND tristate - don't add an empty resume function Stefano Stabellini (13): xen/pvcalls: introduce the pvcalls xenbus frontend xen/pvcalls: connect to the backend xen/pvcalls: implement socket command and handle events xen/pvcalls: implement connect command xen/pvcalls: implement bind command xen/pvcalls: implement listen command xen/pvcalls: implement accept command xen/pvcalls: implement sendmsg xen/pvcalls: implement recvmsg xen/pvcalls: implement poll command xen/pvcalls: implement release command xen/pvcalls: implement frontend disconnect xen: introduce a Kconfig option to enable the pvcalls frontend drivers/xen/Kconfig | 9 + drivers/xen/Makefile | 1 + drivers/xen/pvcalls-front.c | 1103 +++++++++++++++++++++++++++++++++++++++++++ drivers/xen/pvcalls-front.h | 28 ++ 4 files changed, 1141 insertions(+) create mode 100644 drivers/xen/pvcalls-front.c create mode 100644 drivers/xen/pvcalls-front.h