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