search for: vsock_register_mutex

Displaying 20 results from an estimated 48 matches for "vsock_register_mutex".

2019 Nov 21
2
[PATCH net-next 3/6] vsock: add local transport support in the vsock core
...static const struct vsock_transport *transport_g2h; > /* Transport used for DGRAM communication */ > static const struct vsock_transport *transport_dgram; > +/* Transport used for local communication */ > +static const struct vsock_transport *transport_local; > static DEFINE_MUTEX(vsock_register_mutex); > > /**** UTILS ****/ > @@ -2130,7 +2132,7 @@ EXPORT_SYMBOL_GPL(vsock_core_get_transport); > > int vsock_core_register(const struct vsock_transport *t, int features) > { > - const struct vsock_transport *t_h2g, *t_g2h, *t_dgram; > + const struct vsock_transport *t_h2g...
2019 Nov 21
2
[PATCH net-next 3/6] vsock: add local transport support in the vsock core
...static const struct vsock_transport *transport_g2h; > /* Transport used for DGRAM communication */ > static const struct vsock_transport *transport_dgram; > +/* Transport used for local communication */ > +static const struct vsock_transport *transport_local; > static DEFINE_MUTEX(vsock_register_mutex); > > /**** UTILS ****/ > @@ -2130,7 +2132,7 @@ EXPORT_SYMBOL_GPL(vsock_core_get_transport); > > int vsock_core_register(const struct vsock_transport *t, int features) > { > - const struct vsock_transport *t_h2g, *t_g2h, *t_dgram; > + const struct vsock_transport *t_h2g...
2014 May 01
1
[PATCH] vsock: Make transport the proto owner
...net/vmw_vsock/af_vsock.c @@ -1925,9 +1925,22 @@ static struct miscdevice vsock_device = { .fops = &vsock_device_ops, }; -static int __vsock_core_init(void) +int __vsock_core_init(const struct vsock_transport *t, struct module *owner) { - int err; + int err = mutex_lock_interruptible(&vsock_register_mutex); + if (err) + return err; + + if (transport) { + err = -EBUSY; + goto err_busy; + } + + /* Transport must be the owner of the protocol so that it can't + * unload while there are open sockets. + */ + vsock_proto.owner = owner; + transport = t; vsock_init_tables(); @@ -1951,36 +1964,...
2014 May 01
1
[PATCH] vsock: Make transport the proto owner
...net/vmw_vsock/af_vsock.c @@ -1925,9 +1925,22 @@ static struct miscdevice vsock_device = { .fops = &vsock_device_ops, }; -static int __vsock_core_init(void) +int __vsock_core_init(const struct vsock_transport *t, struct module *owner) { - int err; + int err = mutex_lock_interruptible(&vsock_register_mutex); + if (err) + return err; + + if (transport) { + err = -EBUSY; + goto err_busy; + } + + /* Transport must be the owner of the protocol so that it can't + * unload while there are open sockets. + */ + vsock_proto.owner = owner; + transport = t; vsock_init_tables(); @@ -1951,36 +1964,...
2019 Nov 21
2
[PATCH net-next 3/6] vsock: add local transport support in the vsock core
...; > > > /* Transport used for DGRAM communication */ > > > static const struct vsock_transport *transport_dgram; > > > +/* Transport used for local communication */ > > > +static const struct vsock_transport *transport_local; > > > static DEFINE_MUTEX(vsock_register_mutex); > > > > > > /**** UTILS ****/ > > > @@ -2130,7 +2132,7 @@ > EXPORT_SYMBOL_GPL(vsock_core_get_transport); > > > > > > int vsock_core_register(const struct vsock_transport *t, int features) > > > { > > > - const struct vsock_trans...
2019 Nov 21
2
[PATCH net-next 3/6] vsock: add local transport support in the vsock core
...; > > > /* Transport used for DGRAM communication */ > > > static const struct vsock_transport *transport_dgram; > > > +/* Transport used for local communication */ > > > +static const struct vsock_transport *transport_local; > > > static DEFINE_MUTEX(vsock_register_mutex); > > > > > > /**** UTILS ****/ > > > @@ -2130,7 +2132,7 @@ > EXPORT_SYMBOL_GPL(vsock_core_get_transport); > > > > > > int vsock_core_register(const struct vsock_transport *t, int features) > > > { > > > - const struct vsock_trans...
2019 Nov 21
0
[PATCH net-next 3/6] vsock: add local transport support in the vsock core
..._transport *transport_g2h; > > /* Transport used for DGRAM communication */ > > static const struct vsock_transport *transport_dgram; > > +/* Transport used for local communication */ > > +static const struct vsock_transport *transport_local; > > static DEFINE_MUTEX(vsock_register_mutex); > > > > /**** UTILS ****/ > > @@ -2130,7 +2132,7 @@ EXPORT_SYMBOL_GPL(vsock_core_get_transport); > > > > int vsock_core_register(const struct vsock_transport *t, int features) > > { > > - const struct vsock_transport *t_h2g, *t_g2h, *t_dgram; > &g...
2014 May 01
1
[PATCH] vsock: Make transport the proto owner
...net/vmw_vsock/af_vsock.c @@ -1925,9 +1925,23 @@ static struct miscdevice vsock_device = { .fops = &vsock_device_ops, }; -static int __vsock_core_init(void) +int __vsock_core_init(const struct vsock_transport *t, struct module *owner) { - int err; + int err = mutex_lock_interruptible(&vsock_register_mutex); + + if (err) + return err; + + if (transport) { + err = -EBUSY; + goto err_busy; + } + + /* Transport must be the owner of the protocol so that it can't + * unload while there are open sockets. + */ + vsock_proto.owner = owner; + transport = t; vsock_init_tables(); @@ -1951,36 +196...
2014 May 01
1
[PATCH] vsock: Make transport the proto owner
...net/vmw_vsock/af_vsock.c @@ -1925,9 +1925,23 @@ static struct miscdevice vsock_device = { .fops = &vsock_device_ops, }; -static int __vsock_core_init(void) +int __vsock_core_init(const struct vsock_transport *t, struct module *owner) { - int err; + int err = mutex_lock_interruptible(&vsock_register_mutex); + + if (err) + return err; + + if (transport) { + err = -EBUSY; + goto err_busy; + } + + /* Transport must be the owner of the protocol so that it can't + * unload while there are open sockets. + */ + vsock_proto.owner = owner; + transport = t; vsock_init_tables(); @@ -1951,36 +196...
2019 Nov 21
0
[PATCH net-next 3/6] vsock: add local transport support in the vsock core
...Transport used for DGRAM communication */ > > > > static const struct vsock_transport *transport_dgram; > > > > +/* Transport used for local communication */ > > > > +static const struct vsock_transport *transport_local; > > > > static DEFINE_MUTEX(vsock_register_mutex); > > > > > > > > /**** UTILS ****/ > > > > @@ -2130,7 +2132,7 @@ > > EXPORT_SYMBOL_GPL(vsock_core_get_transport); > > > > > > > > int vsock_core_register(const struct vsock_transport *t, int features) > > > > { > &...
2019 Oct 23
0
[PATCH net-next 11/14] vsock: add multi-transports support
...communication */ +static const struct vsock_transport *transport_h2g; +/* Transport used for guest->host communication */ +static const struct vsock_transport *transport_g2h; +/* Transport used for DGRAM communication */ +static const struct vsock_transport *transport_dgram; static DEFINE_MUTEX(vsock_register_mutex); /**** UTILS ****/ @@ -182,7 +187,7 @@ static int vsock_auto_bind(struct vsock_sock *vsk) return __vsock_bind(sk, &local_addr); } -static int __init vsock_init_tables(void) +static void vsock_init_tables(void) { int i; @@ -191,7 +196,6 @@ static int __init vsock_init_tables(void)...
2019 Sep 27
0
[RFC PATCH 10/13] vsock: add multi-transports support
...communication */ +static const struct vsock_transport *transport_h2g; +/* Transport used for guest->host communication */ +static const struct vsock_transport *transport_g2h; +/* Transport used for DGRAM communication */ +static const struct vsock_transport *transport_dgram; static DEFINE_MUTEX(vsock_register_mutex); /**** UTILS ****/ @@ -182,7 +187,7 @@ static int vsock_auto_bind(struct vsock_sock *vsk) return __vsock_bind(sk, &local_addr); } -static int __init vsock_init_tables(void) +static void vsock_init_tables(void) { int i; @@ -191,7 +196,6 @@ static int __init vsock_init_tables(void)...
2019 Sep 27
0
[RFC PATCH 04/13] vsock: add 'transport' member in the struct vsock_sock
...--- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c @@ -126,7 +126,7 @@ static struct proto vsock_proto = { */ #define VSOCK_DEFAULT_CONNECT_TIMEOUT (2 * HZ) -static const struct vsock_transport *transport; +static const struct vsock_transport *transport_single; static DEFINE_MUTEX(vsock_register_mutex); /**** UTILS ****/ @@ -408,7 +408,9 @@ static bool vsock_is_pending(struct sock *sk) static int vsock_send_shutdown(struct sock *sk, int mode) { - return transport->shutdown(vsock_sk(sk), mode); + struct vsock_sock *vsk = vsock_sk(sk); + + return vsk->transport->shutdown(vsk, mode)...
2019 Oct 23
0
[PATCH net-next 04/14] vsock: add 'transport' member in the struct vsock_sock
...--- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c @@ -126,7 +126,7 @@ static struct proto vsock_proto = { */ #define VSOCK_DEFAULT_CONNECT_TIMEOUT (2 * HZ) -static const struct vsock_transport *transport; +static const struct vsock_transport *transport_single; static DEFINE_MUTEX(vsock_register_mutex); /**** UTILS ****/ @@ -408,7 +408,9 @@ static bool vsock_is_pending(struct sock *sk) static int vsock_send_shutdown(struct sock *sk, int mode) { - return transport->shutdown(vsock_sk(sk), mode); + struct vsock_sock *vsk = vsock_sk(sk); + + return vsk->transport->shutdown(vsk, mode)...
2019 Sep 27
29
[RFC PATCH 00/13] vsock: add multi-transports support
Hi all, this series adds the multi-transports support to vsock, following this proposal: https://www.spinics.net/lists/netdev/msg575792.html With the multi-transports support, we can use vsock with nested VMs (using also different hypervisors) loading both guest->host and host->guest transports at the same time. Before this series, vmci-transport supported this behavior but only using
2019 Sep 27
29
[RFC PATCH 00/13] vsock: add multi-transports support
Hi all, this series adds the multi-transports support to vsock, following this proposal: https://www.spinics.net/lists/netdev/msg575792.html With the multi-transports support, we can use vsock with nested VMs (using also different hypervisors) loading both guest->host and host->guest transports at the same time. Before this series, vmci-transport supported this behavior but only using
2019 Oct 09
1
[RFC PATCH 06/13] vsock: add 'struct vsock_sock *' param to vsock_core_get_transport()
On Fri, Sep 27, 2019 at 01:26:56PM +0200, Stefano Garzarella wrote: > -const struct vsock_transport *vsock_core_get_transport(void) > +const struct vsock_transport *vsock_core_get_transport(struct vsock_sock *vsk) > { > /* vsock_register_mutex not taken since only the transport uses this > * function and only while registered. > */ > - return transport_single; This comment is about protecting transport_single. It no longer applies when using vsk->transport. Please drop it. Otherwise: Reviewed-by: Stefan Hajnoczi &l...
2019 Sep 27
0
[RFC PATCH 11/13] vsock: add 'transport_hg' to handle g2h\h2g transports
...c const struct vsock_transport *transport_g2h; +/* Transport used for both host->guest and guest->host communication */ +static const struct vsock_transport *transport_hg; /* Transport used for DGRAM communication */ static const struct vsock_transport *transport_dgram; static DEFINE_MUTEX(vsock_register_mutex); @@ -402,10 +404,13 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) vsk->transport = transport_dgram; break; case SOCK_STREAM: - if (vsk->remote_addr.svm_cid > VMADDR_CID_HOST) + if (vsk->remote_addr.svm_cid > VMADDR_CID_HOST) { vsk->tr...
2019 Nov 14
15
[PATCH net-next v2 00/15] vsock: add multi-transports support
Most of the patches are reviewed by Dexuan, Stefan, and Jorgen. The following patches need reviews: - [11/15] vsock: add multi-transports support - [12/15] vsock/vmci: register vmci_transport only when VMCI guest/host are active - [15/15] vhost/vsock: refuse CID assigned to the guest->host transport RFC: https://patchwork.ozlabs.org/cover/1168442/ v1:
2019 Oct 23
33
[PATCH net-next 00/14] vsock: add multi-transports support
This series adds the multi-transports support to vsock, following this proposal: https://www.spinics.net/lists/netdev/msg575792.html With the multi-transports support, we can use VSOCK with nested VMs (using also different hypervisors) loading both guest->host and host->guest transports at the same time. Before this series, vmci-transport supported this behavior but only using VMware