xen/pvcalls: connect to a frontend
authorStefano Stabellini <sstabellini@kernel.org>
Thu, 6 Jul 2017 17:59:29 +0000 (10:59 -0700)
committerBoris Ostrovsky <boris.ostrovsky@oracle.com>
Thu, 31 Aug 2017 13:45:55 +0000 (09:45 -0400)
commitd0e4d560c2433d29d11219567958b12bfe596d22
treef5ddbf208aa06f1a7c0d0cbd3d8c0a12298c33e2
parent0a9c75c2c7258f2c50d2c62430ccca3eec9f866f
xen/pvcalls: connect to a frontend

Introduce a per-frontend data structure named pvcalls_fedata. It
contains pointers to the command ring, its event channel, a list of
active sockets and a tree of passive sockets (passing sockets need to be
looked up from the id on listen, accept and poll commands, while active
sockets only on release).

It also has an unbound workqueue to schedule the work of parsing and
executing commands on the command ring. socket_lock protects the two
lists. In pvcalls_back_global, keep a list of connected frontends.

[ boris: fixed whitespaces/long lines ]

Signed-off-by: Stefano Stabellini <stefano@aporeto.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
CC: boris.ostrovsky@oracle.com
CC: jgross@suse.com
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
drivers/xen/pvcalls-back.c