mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-25 11:44:44 +00:00
commit
5b718cd399
@ -1,7 +1,7 @@
|
||||
From 622883ec571c468f756195c13726740bdd33a0ee Mon Sep 17 00:00:00 2001
|
||||
From 190d2525e7d454f9fb5a20bb6a49277877143e6b Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 17 Dec 2015 16:53:43 +0800
|
||||
Subject: [PATCH 01/42] virtio: make find_vqs() checkpatch.pl-friendly
|
||||
Subject: [PATCH 01/44] virtio: make find_vqs() checkpatch.pl-friendly
|
||||
|
||||
checkpatch.pl wants arrays of strings declared as follows:
|
||||
|
||||
@ -37,7 +37,7 @@ Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
|
||||
13 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
|
||||
index 06496a1..4150873 100644
|
||||
index 06496a128162..4150873d432e 100644
|
||||
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
|
||||
+++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
|
||||
@@ -130,7 +130,7 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
|
||||
@ -50,7 +50,7 @@ index 06496a1..4150873 100644
|
||||
struct virtio_gpu_device *vgdev;
|
||||
/* this will expand later */
|
||||
diff --git a/drivers/misc/mic/card/mic_virtio.c b/drivers/misc/mic/card/mic_virtio.c
|
||||
index e486a0c..f6ed57d 100644
|
||||
index e486a0c26267..f6ed57d3125c 100644
|
||||
--- a/drivers/misc/mic/card/mic_virtio.c
|
||||
+++ b/drivers/misc/mic/card/mic_virtio.c
|
||||
@@ -311,7 +311,7 @@ unmap:
|
||||
@ -63,7 +63,7 @@ index e486a0c..f6ed57d 100644
|
||||
struct mic_vdev *mvdev = to_micvdev(vdev);
|
||||
struct mic_device_ctrl __iomem *dc = mvdev->dc;
|
||||
diff --git a/drivers/remoteproc/remoteproc_virtio.c b/drivers/remoteproc/remoteproc_virtio.c
|
||||
index e1a1023..e44872f 100644
|
||||
index e1a10232a943..e44872fb9e5e 100644
|
||||
--- a/drivers/remoteproc/remoteproc_virtio.c
|
||||
+++ b/drivers/remoteproc/remoteproc_virtio.c
|
||||
@@ -147,7 +147,7 @@ static void rproc_virtio_del_vqs(struct virtio_device *vdev)
|
||||
@ -76,7 +76,7 @@ index e1a1023..e44872f 100644
|
||||
struct rproc *rproc = vdev_to_rproc(vdev);
|
||||
int i, ret;
|
||||
diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
|
||||
index 73354ee..1fcd27c 100644
|
||||
index 73354ee27877..1fcd27c1f183 100644
|
||||
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
|
||||
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
|
||||
@@ -945,7 +945,7 @@ static void rpmsg_ns_cb(struct rpmsg_channel *rpdev, void *data, int len,
|
||||
@ -89,7 +89,7 @@ index 73354ee..1fcd27c 100644
|
||||
struct virtproc_info *vrp;
|
||||
void *bufs_va;
|
||||
diff --git a/drivers/s390/virtio/kvm_virtio.c b/drivers/s390/virtio/kvm_virtio.c
|
||||
index 53fb975..1d060fd 100644
|
||||
index 53fb975c404b..1d060fd293a3 100644
|
||||
--- a/drivers/s390/virtio/kvm_virtio.c
|
||||
+++ b/drivers/s390/virtio/kvm_virtio.c
|
||||
@@ -255,7 +255,7 @@ static void kvm_del_vqs(struct virtio_device *vdev)
|
||||
@ -102,7 +102,7 @@ index 53fb975..1d060fd 100644
|
||||
struct kvm_device *kdev = to_kvmdev(vdev);
|
||||
int i;
|
||||
diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
|
||||
index 1b83159..bf2d130 100644
|
||||
index 1b831598df7c..bf2d1300a957 100644
|
||||
--- a/drivers/s390/virtio/virtio_ccw.c
|
||||
+++ b/drivers/s390/virtio/virtio_ccw.c
|
||||
@@ -635,7 +635,7 @@ out:
|
||||
@ -115,7 +115,7 @@ index 1b83159..bf2d130 100644
|
||||
struct virtio_ccw_device *vcdev = to_vc_device(vdev);
|
||||
unsigned long *indicatorp = NULL;
|
||||
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
|
||||
index 56f7e25..66082c9 100644
|
||||
index 56f7e2521202..66082c99f6ea 100644
|
||||
--- a/drivers/virtio/virtio_balloon.c
|
||||
+++ b/drivers/virtio/virtio_balloon.c
|
||||
@@ -394,7 +394,7 @@ static int init_vqs(struct virtio_balloon *vb)
|
||||
@ -128,7 +128,7 @@ index 56f7e25..66082c9 100644
|
||||
|
||||
/*
|
||||
diff --git a/drivers/virtio/virtio_input.c b/drivers/virtio/virtio_input.c
|
||||
index c96944b..350a2a5 100644
|
||||
index c96944b59856..350a2a5a49db 100644
|
||||
--- a/drivers/virtio/virtio_input.c
|
||||
+++ b/drivers/virtio/virtio_input.c
|
||||
@@ -170,7 +170,7 @@ static int virtinput_init_vqs(struct virtio_input *vi)
|
||||
@ -141,7 +141,7 @@ index c96944b..350a2a5 100644
|
||||
|
||||
err = vi->vdev->config->find_vqs(vi->vdev, 2, vqs, cbs, names);
|
||||
diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
|
||||
index f499d9d..745c6ee 100644
|
||||
index f499d9da7237..745c6ee1bb3e 100644
|
||||
--- a/drivers/virtio/virtio_mmio.c
|
||||
+++ b/drivers/virtio/virtio_mmio.c
|
||||
@@ -482,7 +482,7 @@ error_available:
|
||||
@ -154,7 +154,7 @@ index f499d9d..745c6ee 100644
|
||||
struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
|
||||
unsigned int irq = platform_get_irq(vm_dev->pdev, 0);
|
||||
diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
|
||||
index 2046a68..f6bed86 100644
|
||||
index 2046a68ad0ba..f6bed86c17f9 100644
|
||||
--- a/drivers/virtio/virtio_pci_common.c
|
||||
+++ b/drivers/virtio/virtio_pci_common.c
|
||||
@@ -296,7 +296,7 @@ void vp_del_vqs(struct virtio_device *vdev)
|
||||
@ -176,7 +176,7 @@ index 2046a68..f6bed86 100644
|
||||
int err;
|
||||
|
||||
diff --git a/drivers/virtio/virtio_pci_common.h b/drivers/virtio/virtio_pci_common.h
|
||||
index b976d96..2cc2522 100644
|
||||
index b976d968e793..2cc252270b2d 100644
|
||||
--- a/drivers/virtio/virtio_pci_common.h
|
||||
+++ b/drivers/virtio/virtio_pci_common.h
|
||||
@@ -139,7 +139,7 @@ void vp_del_vqs(struct virtio_device *vdev);
|
||||
@ -189,7 +189,7 @@ index b976d96..2cc2522 100644
|
||||
|
||||
/* Setup the affinity for a virtqueue:
|
||||
diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c
|
||||
index 4469202..631021c 100644
|
||||
index 4469202eaa8e..631021cfc740 100644
|
||||
--- a/drivers/virtio/virtio_pci_modern.c
|
||||
+++ b/drivers/virtio/virtio_pci_modern.c
|
||||
@@ -423,7 +423,7 @@ err_new_queue:
|
||||
@ -202,7 +202,7 @@ index 4469202..631021c 100644
|
||||
struct virtio_pci_device *vp_dev = to_vp_device(vdev);
|
||||
struct virtqueue *vq;
|
||||
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h
|
||||
index e5ce8ab..6e6cb0c 100644
|
||||
index e5ce8ab0b8b0..6e6cb0c9d7cb 100644
|
||||
--- a/include/linux/virtio_config.h
|
||||
+++ b/include/linux/virtio_config.h
|
||||
@@ -70,7 +70,7 @@ struct virtio_config_ops {
|
||||
@ -215,5 +215,5 @@ index e5ce8ab..6e6cb0c 100644
|
||||
u64 (*get_features)(struct virtio_device *vdev);
|
||||
int (*finalize_features)(struct virtio_device *vdev);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8dc15fd8fab55e076a640d1a5d6f34b77e196632 Mon Sep 17 00:00:00 2001
|
||||
From 2b608e3d358b8eac9c32840aaaf4ab212d532493 Mon Sep 17 00:00:00 2001
|
||||
From: Julia Lawall <julia.lawall@lip6.fr>
|
||||
Date: Sat, 21 Nov 2015 18:39:17 +0100
|
||||
Subject: [PATCH 02/42] VSOCK: constify vmci_transport_notify_ops structures
|
||||
Subject: [PATCH 02/44] VSOCK: constify vmci_transport_notify_ops structures
|
||||
|
||||
The vmci_transport_notify_ops structures are never modified, so declare
|
||||
them as const.
|
||||
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
4 files changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/net/vmw_vsock/vmci_transport.h b/net/vmw_vsock/vmci_transport.h
|
||||
index 2ad46f3..1820e74 100644
|
||||
index 2ad46f39649f..1820e74a5752 100644
|
||||
--- a/net/vmw_vsock/vmci_transport.h
|
||||
+++ b/net/vmw_vsock/vmci_transport.h
|
||||
@@ -121,7 +121,7 @@ struct vmci_transport {
|
||||
@ -32,7 +32,7 @@ index 2ad46f3..1820e74 100644
|
||||
struct sock *sk;
|
||||
spinlock_t lock; /* protects sk. */
|
||||
diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
|
||||
index 9b7f207..fd8cf02 100644
|
||||
index 9b7f207f2bee..fd8cf0214d51 100644
|
||||
--- a/net/vmw_vsock/vmci_transport_notify.c
|
||||
+++ b/net/vmw_vsock/vmci_transport_notify.c
|
||||
@@ -661,7 +661,7 @@ static void vmci_transport_notify_pkt_process_negotiate(struct sock *sk)
|
||||
@ -45,7 +45,7 @@ index 9b7f207..fd8cf02 100644
|
||||
vmci_transport_notify_pkt_socket_destruct,
|
||||
vmci_transport_notify_pkt_poll_in,
|
||||
diff --git a/net/vmw_vsock/vmci_transport_notify.h b/net/vmw_vsock/vmci_transport_notify.h
|
||||
index 7df7932..3c464d3 100644
|
||||
index 7df793249b6c..3c464d394a8f 100644
|
||||
--- a/net/vmw_vsock/vmci_transport_notify.h
|
||||
+++ b/net/vmw_vsock/vmci_transport_notify.h
|
||||
@@ -77,7 +77,8 @@ struct vmci_transport_notify_ops {
|
||||
@ -60,7 +60,7 @@ index 7df7932..3c464d3 100644
|
||||
|
||||
#endif /* __VMCI_TRANSPORT_NOTIFY_H__ */
|
||||
diff --git a/net/vmw_vsock/vmci_transport_notify_qstate.c b/net/vmw_vsock/vmci_transport_notify_qstate.c
|
||||
index dc9c792..21e591d 100644
|
||||
index dc9c7929a2f9..21e591dafb03 100644
|
||||
--- a/net/vmw_vsock/vmci_transport_notify_qstate.c
|
||||
+++ b/net/vmw_vsock/vmci_transport_notify_qstate.c
|
||||
@@ -419,7 +419,7 @@ vmci_transport_notify_pkt_send_pre_enqueue(
|
||||
@ -73,5 +73,5 @@ index dc9c792..21e591d 100644
|
||||
vmci_transport_notify_pkt_socket_destruct,
|
||||
vmci_transport_notify_pkt_poll_in,
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 761aa629641afa804127aea0e3ce5c95dddfcb17 Mon Sep 17 00:00:00 2001
|
||||
From 4644873be14865b14b9dd11a78fb20881a116ea0 Mon Sep 17 00:00:00 2001
|
||||
From: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
|
||||
Date: Tue, 22 Mar 2016 17:05:52 +0100
|
||||
Subject: [PATCH 03/42] AF_VSOCK: Shrink the area influenced by prepare_to_wait
|
||||
Subject: [PATCH 03/44] AF_VSOCK: Shrink the area influenced by prepare_to_wait
|
||||
|
||||
When a thread is prepared for waiting by calling prepare_to_wait, sleeping
|
||||
is not allowed until either the wait has taken place or finish_wait has
|
||||
@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
1 file changed, 85 insertions(+), 73 deletions(-)
|
||||
|
||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
||||
index 9b5bd6d..b5f1221 100644
|
||||
index 9b5bd6d142dc..b5f1221f48d4 100644
|
||||
--- a/net/vmw_vsock/af_vsock.c
|
||||
+++ b/net/vmw_vsock/af_vsock.c
|
||||
@@ -1209,10 +1209,14 @@ static int vsock_stream_connect(struct socket *sock, struct sockaddr *addr,
|
||||
@ -332,5 +332,5 @@ index 9b5bd6d..b5f1221 100644
|
||||
release_sock(sk);
|
||||
return err;
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8386f4e436f280cec08f95338ae5e44bc8aa5b5e Mon Sep 17 00:00:00 2001
|
||||
From 58af9ca05d4337a956f9b8303a2d7b0b968788bb Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 23 Jun 2016 16:28:58 +0100
|
||||
Subject: [PATCH 04/42] vsock: make listener child lock ordering explicit
|
||||
Subject: [PATCH 04/44] vsock: make listener child lock ordering explicit
|
||||
|
||||
There are several places where the listener and pending or accept queue
|
||||
child sockets are accessed at the same time. Lockdep is unhappy that
|
||||
@ -22,7 +22,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
||||
index b5f1221..b96ac91 100644
|
||||
index b5f1221f48d4..b96ac918e0ba 100644
|
||||
--- a/net/vmw_vsock/af_vsock.c
|
||||
+++ b/net/vmw_vsock/af_vsock.c
|
||||
@@ -61,6 +61,14 @@
|
||||
@ -59,5 +59,5 @@ index b5f1221..b96ac91 100644
|
||||
|
||||
/* If the listener socket has received an error, then we should
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ae6d39c3a4cd08ce37606ab36b202702a48f5440 Mon Sep 17 00:00:00 2001
|
||||
From c122f28889868dc16add4712af3603a467bb7fd3 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 28 Jul 2016 15:36:30 +0100
|
||||
Subject: [PATCH 05/42] VSOCK: transport-specific vsock_transport functions
|
||||
Subject: [PATCH 05/44] VSOCK: transport-specific vsock_transport functions
|
||||
|
||||
struct vsock_transport contains function pointers called by AF_VSOCK
|
||||
core code. The transport may want its own transport-specific function
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h
|
||||
index e9eb2d6..23f5525 100644
|
||||
index e9eb2d6791b3..23f55259b60d 100644
|
||||
--- a/include/net/af_vsock.h
|
||||
+++ b/include/net/af_vsock.h
|
||||
@@ -165,6 +165,9 @@ static inline int vsock_core_init(const struct vsock_transport *t)
|
||||
@ -35,7 +35,7 @@ index e9eb2d6..23f5525 100644
|
||||
|
||||
void vsock_release_pending(struct sock *pending);
|
||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
||||
index b96ac91..e34d96f 100644
|
||||
index b96ac918e0ba..e34d96f8bde2 100644
|
||||
--- a/net/vmw_vsock/af_vsock.c
|
||||
+++ b/net/vmw_vsock/af_vsock.c
|
||||
@@ -1995,6 +1995,15 @@ void vsock_core_exit(void)
|
||||
@ -55,5 +55,5 @@ index b96ac91..e34d96f 100644
|
||||
MODULE_DESCRIPTION("VMware Virtual Socket Family");
|
||||
MODULE_VERSION("1.0.1.0-k");
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 816c87fe6ecfa46981c0ca332d21f1e0d8bfd8a0 Mon Sep 17 00:00:00 2001
|
||||
From c388401f49ad3f0ec37aab115f883e180427aae0 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 28 Jul 2016 15:36:31 +0100
|
||||
Subject: [PATCH 06/42] VSOCK: defer sock removal to transports
|
||||
Subject: [PATCH 06/44] VSOCK: defer sock removal to transports
|
||||
|
||||
The virtio transport will implement graceful shutdown and the related
|
||||
SO_LINGER socket option. This requires orphaning the sock but keeping
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
3 files changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h
|
||||
index 23f5525..3af0b22 100644
|
||||
index 23f55259b60d..3af0b224f754 100644
|
||||
--- a/include/net/af_vsock.h
|
||||
+++ b/include/net/af_vsock.h
|
||||
@@ -180,6 +180,7 @@ void vsock_remove_connected(struct vsock_sock *vsk);
|
||||
@ -32,7 +32,7 @@ index 23f5525..3af0b22 100644
|
||||
|
||||
#endif /* __AF_VSOCK_H__ */
|
||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
||||
index e34d96f..17dbbe6 100644
|
||||
index e34d96f8bde2..17dbbe64cd73 100644
|
||||
--- a/net/vmw_vsock/af_vsock.c
|
||||
+++ b/net/vmw_vsock/af_vsock.c
|
||||
@@ -344,6 +344,16 @@ static bool vsock_in_connected_table(struct vsock_sock *vsk)
|
||||
@ -66,7 +66,7 @@ index e34d96f..17dbbe6 100644
|
||||
|
||||
lock_sock(sk);
|
||||
diff --git a/net/vmw_vsock/vmci_transport.c b/net/vmw_vsock/vmci_transport.c
|
||||
index 0a369bb..706991e 100644
|
||||
index 0a369bb440e7..706991e00e93 100644
|
||||
--- a/net/vmw_vsock/vmci_transport.c
|
||||
+++ b/net/vmw_vsock/vmci_transport.c
|
||||
@@ -1644,6 +1644,8 @@ static void vmci_transport_destruct(struct vsock_sock *vsk)
|
||||
@ -79,5 +79,5 @@ index 0a369bb..706991e 100644
|
||||
vmci_datagram_destroy_handle(vmci_trans(vsk)->dg_handle);
|
||||
vmci_trans(vsk)->dg_handle = VMCI_INVALID_HANDLE;
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From fe9f8cb30a5c819adabb5b9b598f7776cbbdc4f0 Mon Sep 17 00:00:00 2001
|
||||
From 7d8134e14e6199a3843d3297be701051691e0443 Mon Sep 17 00:00:00 2001
|
||||
From: Asias He <asias@redhat.com>
|
||||
Date: Thu, 28 Jul 2016 15:36:32 +0100
|
||||
Subject: [PATCH 07/42] VSOCK: Introduce virtio_vsock_common.ko
|
||||
Subject: [PATCH 07/44] VSOCK: Introduce virtio_vsock_common.ko
|
||||
|
||||
This module contains the common code and header files for the following
|
||||
virtio_transporto and vhost_vsock kernel modules.
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
create mode 100644 net/vmw_vsock/virtio_transport_common.c
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index ab65bbe..b93ba8b 100644
|
||||
index ab65bbecb159..b93ba8b21be7 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -11382,6 +11382,16 @@ S: Maintained
|
||||
@ -49,7 +49,7 @@ index ab65bbe..b93ba8b 100644
|
||||
S: Maintained
|
||||
diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h
|
||||
new file mode 100644
|
||||
index 0000000..9638bfe
|
||||
index 000000000000..9638bfeb0d1f
|
||||
--- /dev/null
|
||||
+++ b/include/linux/virtio_vsock.h
|
||||
@@ -0,0 +1,154 @@
|
||||
@ -208,7 +208,7 @@ index 0000000..9638bfe
|
||||
+
|
||||
+#endif /* _LINUX_VIRTIO_VSOCK_H */
|
||||
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h
|
||||
index 3af0b22..f275896 100644
|
||||
index 3af0b224f754..f2758964ce6f 100644
|
||||
--- a/include/net/af_vsock.h
|
||||
+++ b/include/net/af_vsock.h
|
||||
@@ -63,6 +63,8 @@ struct vsock_sock {
|
||||
@ -222,7 +222,7 @@ index 3af0b22..f275896 100644
|
||||
bool ignore_connecting_rst;
|
||||
diff --git a/include/trace/events/vsock_virtio_transport_common.h b/include/trace/events/vsock_virtio_transport_common.h
|
||||
new file mode 100644
|
||||
index 0000000..b7f1d62
|
||||
index 000000000000..b7f1d6278280
|
||||
--- /dev/null
|
||||
+++ b/include/trace/events/vsock_virtio_transport_common.h
|
||||
@@ -0,0 +1,144 @@
|
||||
@ -371,7 +371,7 @@ index 0000000..b7f1d62
|
||||
+/* This part must be outside protection */
|
||||
+#include <trace/define_trace.h>
|
||||
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
|
||||
index ebd10e6..6c51a4d 100644
|
||||
index ebd10e624598..6c51a4d8bb62 100644
|
||||
--- a/include/uapi/linux/Kbuild
|
||||
+++ b/include/uapi/linux/Kbuild
|
||||
@@ -447,6 +447,7 @@ header-y += virtio_ring.h
|
||||
@ -383,7 +383,7 @@ index ebd10e6..6c51a4d 100644
|
||||
header-y += vt.h
|
||||
header-y += wait.h
|
||||
diff --git a/include/uapi/linux/virtio_ids.h b/include/uapi/linux/virtio_ids.h
|
||||
index 77925f5..3228d58 100644
|
||||
index 77925f587b15..3228d582234a 100644
|
||||
--- a/include/uapi/linux/virtio_ids.h
|
||||
+++ b/include/uapi/linux/virtio_ids.h
|
||||
@@ -41,5 +41,6 @@
|
||||
@ -395,7 +395,7 @@ index 77925f5..3228d58 100644
|
||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||
diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h
|
||||
new file mode 100644
|
||||
index 0000000..6b011c1
|
||||
index 000000000000..6b011c19b50f
|
||||
--- /dev/null
|
||||
+++ b/include/uapi/linux/virtio_vsock.h
|
||||
@@ -0,0 +1,94 @@
|
||||
@ -495,7 +495,7 @@ index 0000000..6b011c1
|
||||
+#endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
|
||||
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
|
||||
new file mode 100644
|
||||
index 0000000..a53b3a1
|
||||
index 000000000000..a53b3a16b4f1
|
||||
--- /dev/null
|
||||
+++ b/net/vmw_vsock/virtio_transport_common.c
|
||||
@@ -0,0 +1,992 @@
|
||||
@ -1492,5 +1492,5 @@ index 0000000..a53b3a1
|
||||
+MODULE_AUTHOR("Asias He");
|
||||
+MODULE_DESCRIPTION("common code for virtio vsock");
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c384834d9495c7b2a36b0054d08ddf3240687bdc Mon Sep 17 00:00:00 2001
|
||||
From fb158aa4227b765ec8605ef39d23846389a7ffb2 Mon Sep 17 00:00:00 2001
|
||||
From: Asias He <asias@redhat.com>
|
||||
Date: Thu, 28 Jul 2016 15:36:33 +0100
|
||||
Subject: [PATCH 08/42] VSOCK: Introduce virtio_transport.ko
|
||||
Subject: [PATCH 08/44] VSOCK: Introduce virtio_transport.ko
|
||||
|
||||
VM sockets virtio transport implementation. This driver runs in the
|
||||
guest.
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
create mode 100644 net/vmw_vsock/virtio_transport.c
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index b93ba8b..82d1123 100644
|
||||
index b93ba8b21be7..82d11235cacb 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -11391,6 +11391,7 @@ S: Maintained
|
||||
@ -30,7 +30,7 @@ index b93ba8b..82d1123 100644
|
||||
M: Stephen Chandler Paul <thatslyude@gmail.com>
|
||||
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
|
||||
new file mode 100644
|
||||
index 0000000..699dfab
|
||||
index 000000000000..699dfabdbccd
|
||||
--- /dev/null
|
||||
+++ b/net/vmw_vsock/virtio_transport.c
|
||||
@@ -0,0 +1,624 @@
|
||||
@ -659,5 +659,5 @@ index 0000000..699dfab
|
||||
+MODULE_DESCRIPTION("virtio transport for vsock");
|
||||
+MODULE_DEVICE_TABLE(virtio, id_table);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a0af1060ea091348b94bd3780e5b92a3334e64b2 Mon Sep 17 00:00:00 2001
|
||||
From 429b9374590476305988dcf27c291f3b25d4fabe Mon Sep 17 00:00:00 2001
|
||||
From: Asias He <asias@redhat.com>
|
||||
Date: Thu, 28 Jul 2016 15:36:34 +0100
|
||||
Subject: [PATCH 09/42] VSOCK: Introduce vhost_vsock.ko
|
||||
Subject: [PATCH 09/44] VSOCK: Introduce vhost_vsock.ko
|
||||
|
||||
VM sockets vhost transport implementation. This driver runs on the
|
||||
host.
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
create mode 100644 drivers/vhost/vsock.c
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index 82d1123..12d49f5 100644
|
||||
index 82d11235cacb..12d49f58c4e0 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -11392,6 +11392,8 @@ F: include/linux/virtio_vsock.h
|
||||
@ -32,7 +32,7 @@ index 82d1123..12d49f5 100644
|
||||
M: Stephen Chandler Paul <thatslyude@gmail.com>
|
||||
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
||||
new file mode 100644
|
||||
index 0000000..028ca16
|
||||
index 000000000000..028ca16c2d36
|
||||
--- /dev/null
|
||||
+++ b/drivers/vhost/vsock.c
|
||||
@@ -0,0 +1,722 @@
|
||||
@ -759,7 +759,7 @@ index 0000000..028ca16
|
||||
+MODULE_AUTHOR("Asias He");
|
||||
+MODULE_DESCRIPTION("vhost transport for vsock ");
|
||||
diff --git a/include/uapi/linux/vhost.h b/include/uapi/linux/vhost.h
|
||||
index ab373191..b306476 100644
|
||||
index ab3731917bac..b30647697774 100644
|
||||
--- a/include/uapi/linux/vhost.h
|
||||
+++ b/include/uapi/linux/vhost.h
|
||||
@@ -169,4 +169,9 @@ struct vhost_scsi_target {
|
||||
@ -773,5 +773,5 @@ index ab373191..b306476 100644
|
||||
+
|
||||
#endif
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 30e1801c9e9683512a0cd169edf015923497dd70 Mon Sep 17 00:00:00 2001
|
||||
From 17b7a6b41700d4a075c228526761d8c1d2d555d2 Mon Sep 17 00:00:00 2001
|
||||
From: Asias He <asias@redhat.com>
|
||||
Date: Thu, 28 Jul 2016 15:36:35 +0100
|
||||
Subject: [PATCH 10/42] VSOCK: Add Makefile and Kconfig
|
||||
Subject: [PATCH 10/44] VSOCK: Add Makefile and Kconfig
|
||||
|
||||
Enable virtio-vsock and vhost-vsock.
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
4 files changed, 44 insertions(+)
|
||||
|
||||
diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
|
||||
index 533eaf0..2b5f588 100644
|
||||
index 533eaf04f12f..2b5f588f5b1e 100644
|
||||
--- a/drivers/vhost/Kconfig
|
||||
+++ b/drivers/vhost/Kconfig
|
||||
@@ -21,6 +21,20 @@ config VHOST_SCSI
|
||||
@ -42,7 +42,7 @@ index 533eaf0..2b5f588 100644
|
||||
tristate
|
||||
---help---
|
||||
diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile
|
||||
index e0441c3..6b012b9 100644
|
||||
index e0441c34db1c..6b012b986b57 100644
|
||||
--- a/drivers/vhost/Makefile
|
||||
+++ b/drivers/vhost/Makefile
|
||||
@@ -4,5 +4,9 @@ vhost_net-y := net.o
|
||||
@ -56,7 +56,7 @@ index e0441c3..6b012b9 100644
|
||||
+
|
||||
obj-$(CONFIG_VHOST) += vhost.o
|
||||
diff --git a/net/vmw_vsock/Kconfig b/net/vmw_vsock/Kconfig
|
||||
index 14810ab..8831e7c 100644
|
||||
index 14810abedc2e..8831e7c42167 100644
|
||||
--- a/net/vmw_vsock/Kconfig
|
||||
+++ b/net/vmw_vsock/Kconfig
|
||||
@@ -26,3 +26,23 @@ config VMWARE_VMCI_VSOCKETS
|
||||
@ -84,7 +84,7 @@ index 14810ab..8831e7c 100644
|
||||
+ the virtio_vsock. The module will be called
|
||||
+ vmw_vsock_virtio_transport_common.
|
||||
diff --git a/net/vmw_vsock/Makefile b/net/vmw_vsock/Makefile
|
||||
index 2ce52d7..bc27c70 100644
|
||||
index 2ce52d70f224..bc27c70e0e59 100644
|
||||
--- a/net/vmw_vsock/Makefile
|
||||
+++ b/net/vmw_vsock/Makefile
|
||||
@@ -1,7 +1,13 @@
|
||||
@ -102,5 +102,5 @@ index 2ce52d7..bc27c70 100644
|
||||
+
|
||||
+vmw_vsock_virtio_transport_common-y += virtio_transport_common.o
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e9a09f08525c736a71d8331fd6412a0ad19ee428 Mon Sep 17 00:00:00 2001
|
||||
From 2eb16145fb76667bcc47b02bf3708ff2fc6389fb Mon Sep 17 00:00:00 2001
|
||||
From: Wei Yongjun <weiyj.lk@gmail.com>
|
||||
Date: Tue, 2 Aug 2016 13:50:42 +0000
|
||||
Subject: [PATCH 11/42] VSOCK: Use kvfree()
|
||||
Subject: [PATCH 11/44] VSOCK: Use kvfree()
|
||||
|
||||
Use kvfree() instead of open-coding it.
|
||||
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
||||
index 028ca16..0ddf3a2 100644
|
||||
index 028ca16c2d36..0ddf3a2dbfc4 100644
|
||||
--- a/drivers/vhost/vsock.c
|
||||
+++ b/drivers/vhost/vsock.c
|
||||
@@ -434,10 +434,7 @@ err:
|
||||
@ -29,5 +29,5 @@ index 028ca16..0ddf3a2 100644
|
||||
|
||||
static int vhost_vsock_dev_open(struct inode *inode, struct file *file)
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From f886059ea8d0ac8ed981263d91d94275b85c50d5 Mon Sep 17 00:00:00 2001
|
||||
From de224dfc853e82a22203479455d8fd3192e9b535 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 4 Aug 2016 14:52:53 +0100
|
||||
Subject: [PATCH 12/42] vhost/vsock: fix vhost virtio_vsock_pkt use-after-free
|
||||
Subject: [PATCH 12/44] vhost/vsock: fix vhost virtio_vsock_pkt use-after-free
|
||||
|
||||
Stash the packet length in a local variable before handing over
|
||||
ownership of the packet to virtio_transport_recv_pkt() or
|
||||
@ -19,7 +19,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
||||
index 0ddf3a2..e3b30ea 100644
|
||||
index 0ddf3a2dbfc4..e3b30ea9ece5 100644
|
||||
--- a/drivers/vhost/vsock.c
|
||||
+++ b/drivers/vhost/vsock.c
|
||||
@@ -307,6 +307,8 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
|
||||
@ -49,5 +49,5 @@ index 0ddf3a2..e3b30ea 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 6ded3ac18eabf23a790d6b6876119d8cd0538964 Mon Sep 17 00:00:00 2001
|
||||
From cad999979a54a6b0a301544645ca2ea99a2cb695 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Fri, 5 Aug 2016 13:52:09 +0100
|
||||
Subject: [PATCH 13/42] virtio-vsock: fix include guard typo
|
||||
Subject: [PATCH 13/44] virtio-vsock: fix include guard typo
|
||||
|
||||
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h
|
||||
index 6b011c1..1d57ed3 100644
|
||||
index 6b011c19b50f..1d57ed3d84d2 100644
|
||||
--- a/include/uapi/linux/virtio_vsock.h
|
||||
+++ b/include/uapi/linux/virtio_vsock.h
|
||||
@@ -32,7 +32,7 @@
|
||||
@ -24,5 +24,5 @@ index 6b011c1..1d57ed3 100644
|
||||
#include <linux/types.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5fcd2673fadd46b0d2d5f896281113cd67a2efa7 Mon Sep 17 00:00:00 2001
|
||||
From 20fcf536994ef51a2786d1c41c143d0278fc4afc Mon Sep 17 00:00:00 2001
|
||||
From: Gerard Garcia <ggarcia@deic.uab.cat>
|
||||
Date: Wed, 10 Aug 2016 17:24:34 +0200
|
||||
Subject: [PATCH 14/42] vhost/vsock: drop space available check for TX vq
|
||||
Subject: [PATCH 14/44] vhost/vsock: drop space available check for TX vq
|
||||
|
||||
Remove unnecessary use of enable/disable callback notifications
|
||||
and the incorrect more space available check.
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
|
||||
index 699dfab..936d7ee 100644
|
||||
index 699dfabdbccd..936d7eee62d0 100644
|
||||
--- a/net/vmw_vsock/virtio_transport.c
|
||||
+++ b/net/vmw_vsock/virtio_transport.c
|
||||
@@ -87,9 +87,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
|
||||
@ -57,5 +57,5 @@ index 699dfab..936d7ee 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8719b508f509c06a7821d6f8e2fc1fcad84d6fbb Mon Sep 17 00:00:00 2001
|
||||
From e2d417429738c3a8da5086a4f9bd815fca3ba0a6 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Campbell <ian.campbell@docker.com>
|
||||
Date: Mon, 4 Apr 2016 14:50:10 +0100
|
||||
Subject: [PATCH 15/42] VSOCK: Only allow host network namespace to use
|
||||
Subject: [PATCH 15/44] VSOCK: Only allow host network namespace to use
|
||||
AF_VSOCK.
|
||||
|
||||
The VSOCK addressing schema does not really lend itself to simply creating an
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Ian Campbell <ian.campbell@docker.com>
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
||||
index 17dbbe6..1bb1b01 100644
|
||||
index 17dbbe64cd73..1bb1b016e945 100644
|
||||
--- a/net/vmw_vsock/af_vsock.c
|
||||
+++ b/net/vmw_vsock/af_vsock.c
|
||||
@@ -1852,6 +1852,9 @@ static const struct proto_ops vsock_stream_ops = {
|
||||
@ -27,5 +27,5 @@ index 17dbbe6..1bb1b01 100644
|
||||
return -EINVAL;
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 84e1e7a4981f6ef926bb01481445def66e0982b2 Mon Sep 17 00:00:00 2001
|
||||
From 4331f8b43f608d81e14b5caee4b0c24cd896eb4d Mon Sep 17 00:00:00 2001
|
||||
From: Jake Oshins <jakeo@microsoft.com>
|
||||
Date: Mon, 14 Dec 2015 16:01:41 -0800
|
||||
Subject: [PATCH 16/42] drivers:hv: Define the channel type for Hyper-V PCI
|
||||
Subject: [PATCH 16/44] drivers:hv: Define the channel type for Hyper-V PCI
|
||||
Express pass-through
|
||||
|
||||
This defines the channel type for PCI front-ends in Hyper-V VMs.
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 37238df..a562318 100644
|
||||
index 37238dffd947..a562318b856b 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -359,6 +359,7 @@ enum {
|
||||
@ -37,7 +37,7 @@ index 37238df..a562318 100644
|
||||
|
||||
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index ae6a711..10dda1e 100644
|
||||
index ae6a711dcd1d..10dda1e3b560 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1156,6 +1156,17 @@ int vmbus_allocate_mmio(struct resource **new, struct hv_device *device_obj,
|
||||
@ -59,5 +59,5 @@ index ae6a711..10dda1e 100644
|
||||
*/
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 12fbf6bcf859c7ce33766ae450dc291d0b857197 Mon Sep 17 00:00:00 2001
|
||||
From ac16740f1c65a5b960e288a96965053171f654d5 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Mon, 14 Dec 2015 16:01:43 -0800
|
||||
Subject: [PATCH 17/42] Drivers: hv: vmbus: Use uuid_le type consistently
|
||||
Subject: [PATCH 17/44] Drivers: hv: vmbus: Use uuid_le type consistently
|
||||
|
||||
Consistently use uuid_le type in the Hyper-V driver code.
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
5 files changed, 40 insertions(+), 68 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index a562318..339277b 100644
|
||||
index a562318b856b..339277b76468 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -409,7 +409,7 @@ static void init_vp_index(struct vmbus_channel *channel, const uuid_le *type_gui
|
||||
@ -30,7 +30,7 @@ index a562318..339277b 100644
|
||||
perf_chn = true;
|
||||
break;
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index 509ed97..6ce2bf8 100644
|
||||
index 509ed9731630..6ce2bf81dae3 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -533,7 +533,7 @@ static int vmbus_uevent(struct device *device, struct kobj_uevent_env *env)
|
||||
@ -73,7 +73,7 @@ index 509ed97..6ce2bf8 100644
|
||||
ret = drv->probe(dev, dev_id);
|
||||
if (ret != 0)
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 10dda1e..4712d7d 100644
|
||||
index 10dda1e3b560..4712d7d07b8c 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1012,6 +1012,8 @@ int vmbus_allocate_mmio(struct resource **new, struct hv_device *device_obj,
|
||||
@ -267,7 +267,7 @@ index 10dda1e..4712d7d 100644
|
||||
/*
|
||||
* Common header for Hyper-V ICs
|
||||
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
|
||||
index 64f36e0..6e4c645 100644
|
||||
index 64f36e09a790..6e4c645e1c0d 100644
|
||||
--- a/include/linux/mod_devicetable.h
|
||||
+++ b/include/linux/mod_devicetable.h
|
||||
@@ -404,7 +404,7 @@ struct virtio_device_id {
|
||||
@ -280,7 +280,7 @@ index 64f36e0..6e4c645 100644
|
||||
};
|
||||
|
||||
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
|
||||
index 9f5cdd4..8e8c69b 100644
|
||||
index 9f5cdd49ff0b..8e8c69bee78f 100644
|
||||
--- a/scripts/mod/file2alias.c
|
||||
+++ b/scripts/mod/file2alias.c
|
||||
@@ -917,7 +917,7 @@ static int do_vmbus_entry(const char *filename, void *symval,
|
||||
@ -293,5 +293,5 @@ index 9f5cdd4..8e8c69b 100644
|
||||
strcpy(alias, "vmbus:");
|
||||
strcat(alias, guid_name);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 01a403dce6afb34dd0430e12d93b7acd5f384439 Mon Sep 17 00:00:00 2001
|
||||
From bd9affada850f2723a678ec65910d5547184843e Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Mon, 14 Dec 2015 16:01:44 -0800
|
||||
Subject: [PATCH 18/42] Drivers: hv: vmbus: Use uuid_le_cmp() for comparing
|
||||
Subject: [PATCH 18/44] Drivers: hv: vmbus: Use uuid_le_cmp() for comparing
|
||||
GUIDs
|
||||
|
||||
Use uuid_le_cmp() for comparing GUIDs.
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
2 files changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 339277b..9b4525c 100644
|
||||
index 339277b76468..9b4525c56376 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -409,8 +409,7 @@ static void init_vp_index(struct vmbus_channel *channel, const uuid_le *type_gui
|
||||
@ -29,7 +29,7 @@ index 339277b..9b4525c 100644
|
||||
break;
|
||||
}
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index 6ce2bf8..7973aa5 100644
|
||||
index 6ce2bf81dae3..7973aa55fec8 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -535,7 +535,7 @@ static const uuid_le null_guid;
|
||||
@ -51,5 +51,5 @@ index 6ce2bf8..7973aa5 100644
|
||||
|
||||
return NULL;
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a9c4320f47b5a2d2ef7600c5f61f3d4256de2ba5 Mon Sep 17 00:00:00 2001
|
||||
From ed712a86d76146f4e5279ac473ce346f6acaaae1 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 14 Dec 2015 16:01:48 -0800
|
||||
Subject: [PATCH 19/42] Drivers: hv: vmbus: do sanity check of channel state in
|
||||
Subject: [PATCH 19/44] Drivers: hv: vmbus: do sanity check of channel state in
|
||||
vmbus_close_internal()
|
||||
|
||||
This fixes an incorrect assumption of channel state in the function.
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 1ef37c7..2889d97 100644
|
||||
index 1ef37c727572..2889d97c03b1 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -512,6 +512,18 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
||||
@ -38,5 +38,5 @@ index 1ef37c7..2889d97 100644
|
||||
channel->sc_creation_callback = NULL;
|
||||
/* Stop callback and cancel the timer asap */
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b92976804d10f78b9a50f5d8f62f3663a44f32e6 Mon Sep 17 00:00:00 2001
|
||||
From d6f12dc4d3efb1005519e87382c2800843dd3e0d Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 14 Dec 2015 16:01:50 -0800
|
||||
Subject: [PATCH 20/42] Drivers: hv: vmbus: release relid on error in
|
||||
Subject: [PATCH 20/44] Drivers: hv: vmbus: release relid on error in
|
||||
vmbus_process_offer()
|
||||
|
||||
We want to simplify vmbus_onoffer_rescind() by not invoking
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 15 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 9b4525c..8529dd2 100644
|
||||
index 9b4525c56376..8529dd2ebc3d 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -178,19 +178,22 @@ static void percpu_channel_deq(void *arg)
|
||||
@ -70,5 +70,5 @@ index 9b4525c..8529dd2 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e34354b98924dba0128289e722bde4ca35eafa90 Mon Sep 17 00:00:00 2001
|
||||
From 0d14411db1498d805f8b4b060295ca77e0c872cd Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 14 Dec 2015 16:01:51 -0800
|
||||
Subject: [PATCH 21/42] Drivers: hv: vmbus: channge
|
||||
Subject: [PATCH 21/44] Drivers: hv: vmbus: channge
|
||||
vmbus_connection.channel_lock to mutex
|
||||
|
||||
spinlock is unnecessary here.
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
3 files changed, 10 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 8529dd2..306c7df 100644
|
||||
index 8529dd2ebc3d..306c7dff6c77 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -207,9 +207,9 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid)
|
||||
@ -64,7 +64,7 @@ index 8529dd2..306c7df 100644
|
||||
if (newchannel->target_cpu != get_cpu()) {
|
||||
put_cpu();
|
||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
||||
index 4fc2e88..521f48e 100644
|
||||
index 4fc2e8836e60..521f48ed188e 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -146,7 +146,7 @@ int vmbus_connect(void)
|
||||
@ -99,7 +99,7 @@ index 4fc2e88..521f48e 100644
|
||||
return found_channel;
|
||||
}
|
||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
||||
index 12156db..50b1de7 100644
|
||||
index 12156db2e88e..50b1de7439cf 100644
|
||||
--- a/drivers/hv/hyperv_vmbus.h
|
||||
+++ b/drivers/hv/hyperv_vmbus.h
|
||||
@@ -683,7 +683,7 @@ struct vmbus_connection {
|
||||
@ -112,5 +112,5 @@ index 12156db..50b1de7 100644
|
||||
struct workqueue_struct *work_queue;
|
||||
};
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 91a65c691fc22cc6bfb884dea29cc7c5c3e5f9a9 Mon Sep 17 00:00:00 2001
|
||||
From 76f7fdc166bb0b747b666c1e6de0184cd00835b8 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Mon, 14 Dec 2015 19:02:00 -0800
|
||||
Subject: [PATCH 22/42] Drivers: hv: remove code duplication between
|
||||
Subject: [PATCH 22/44] Drivers: hv: remove code duplication between
|
||||
vmbus_recvpacket()/vmbus_recvpacket_raw()
|
||||
|
||||
vmbus_recvpacket() and vmbus_recvpacket_raw() are almost identical but
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 22 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 2889d97..dd6de7f 100644
|
||||
index 2889d97c03b1..dd6de7fc442f 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -922,8 +922,10 @@ EXPORT_SYMBOL_GPL(vmbus_sendpacket_multipagebuffer);
|
||||
@ -122,5 +122,5 @@ index 2889d97..dd6de7f 100644
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vmbus_recvpacket_raw);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4c754b011766c2d8a99424637656ea8096d55890 Mon Sep 17 00:00:00 2001
|
||||
From acdf851a460410451073ae3eea087e48c9244770 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 21 Dec 2015 12:21:22 -0800
|
||||
Subject: [PATCH 23/42] Drivers: hv: vmbus: fix the building warning with
|
||||
Subject: [PATCH 23/44] Drivers: hv: vmbus: fix the building warning with
|
||||
hyperv-keyboard
|
||||
|
||||
With the recent change af3ff643ea91ba64dd8d0b1cbed54d44512f96cd
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
2 files changed, 8 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/serio/hyperv-keyboard.c b/drivers/input/serio/hyperv-keyboard.c
|
||||
index e74e5d6..c948866 100644
|
||||
index e74e5d6e5f9f..c948866edf87 100644
|
||||
--- a/drivers/input/serio/hyperv-keyboard.c
|
||||
+++ b/drivers/input/serio/hyperv-keyboard.c
|
||||
@@ -412,16 +412,6 @@ static int hv_kbd_remove(struct hv_device *hv_dev)
|
||||
@ -49,7 +49,7 @@ index e74e5d6..c948866 100644
|
||||
/* Keyboard guid */
|
||||
{ HV_KBD_GUID, },
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 4712d7d..9e2de6a 100644
|
||||
index 4712d7d07b8c..9e2de6a7cc96 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1091,6 +1091,14 @@ int vmbus_allocate_mmio(struct resource **new, struct hv_device *device_obj,
|
||||
@ -68,5 +68,5 @@ index 4712d7d..9e2de6a 100644
|
||||
*/
|
||||
#define HV_VSS_GUID \
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 6cb1a2f24c7b049f8a0c259afa4f5de37ac84084 Mon Sep 17 00:00:00 2001
|
||||
From c952417ede883823ddf02ca6747c19f03728559a Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Tue, 15 Dec 2015 16:27:27 -0800
|
||||
Subject: [PATCH 24/42] Drivers: hv: vmbus: Treat Fibre Channel devices as
|
||||
Subject: [PATCH 24/44] Drivers: hv: vmbus: Treat Fibre Channel devices as
|
||||
performance critical
|
||||
|
||||
For performance critical devices, we distribute the incoming
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 306c7df..763d0c1 100644
|
||||
index 306c7dff6c77..763d0c19c16f 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -362,6 +362,7 @@ err_free_chan:
|
||||
@ -38,5 +38,5 @@ index 306c7df..763d0c1 100644
|
||||
{ HV_NIC_GUID, },
|
||||
/* NetworkDirect Guest RDMA */
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 69933a7f325a93afbb5ed819388b8b063d602066 Mon Sep 17 00:00:00 2001
|
||||
From b8f2da0e5160cd380ee25b81a1e5f8c922a713fe Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Fri, 25 Dec 2015 20:00:30 -0800
|
||||
Subject: [PATCH 25/42] Drivers: hv: vmbus: Add vendor and device atttributes
|
||||
Subject: [PATCH 25/44] Drivers: hv: vmbus: Add vendor and device atttributes
|
||||
|
||||
Add vendor and device attributes to VMBUS devices. These will be used
|
||||
by Hyper-V tools as well user-level RDMA libraries that will use the
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
4 files changed, 186 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git a/Documentation/ABI/stable/sysfs-bus-vmbus b/Documentation/ABI/stable/sysfs-bus-vmbus
|
||||
index 636e938..5d0125f 100644
|
||||
index 636e938d5e33..5d0125f7bcaf 100644
|
||||
--- a/Documentation/ABI/stable/sysfs-bus-vmbus
|
||||
+++ b/Documentation/ABI/stable/sysfs-bus-vmbus
|
||||
@@ -27,3 +27,17 @@ Description: The mapping of which primary/sub channels are bound to which
|
||||
@ -40,7 +40,7 @@ index 636e938..5d0125f 100644
|
||||
+Description: The 16 bit vendor ID of the device
|
||||
+Users: tools/hv/lsvmbus and user level RDMA libraries
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 763d0c1..d6c6114 100644
|
||||
index 763d0c19c16f..d6c611457601 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -33,8 +33,122 @@
|
||||
@ -259,7 +259,7 @@ index 763d0c1..d6c6114 100644
|
||||
(vmbus_proto_version == VERSION_WIN7) || (!perf_chn)) {
|
||||
/*
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index 7973aa5..de7130c 100644
|
||||
index 7973aa55fec8..de7130c58a62 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -480,6 +480,24 @@ static ssize_t channel_vp_mapping_show(struct device *dev,
|
||||
@ -305,7 +305,7 @@ index 7973aa5..de7130c 100644
|
||||
|
||||
return child_device_obj;
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 9e2de6a..51c98fd 100644
|
||||
index 9e2de6a7cc96..51c98fd6044d 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -635,6 +635,32 @@ enum hv_signal_policy {
|
||||
@ -351,5 +351,5 @@ index 9e2de6a..51c98fd 100644
|
||||
struct device device;
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 64f93cfc49018e7ffa772506cfe3631b3db530b9 Mon Sep 17 00:00:00 2001
|
||||
From 26e5ac0096b7b4f80dbda30ab21101077ce75286 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:37 -0800
|
||||
Subject: [PATCH 26/42] Drivers: hv: vmbus: add a helper function to set a
|
||||
Subject: [PATCH 26/44] Drivers: hv: vmbus: add a helper function to set a
|
||||
channel's pending send size
|
||||
|
||||
This will be used by the coming net/hvsock driver.
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 51c98fd..934542a 100644
|
||||
index 51c98fd6044d..934542ac1394 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -818,6 +818,12 @@ static inline void *get_per_channel_state(struct vmbus_channel *c)
|
||||
@ -32,5 +32,5 @@ index 51c98fd..934542a 100644
|
||||
|
||||
int vmbus_request_offers(void);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8658862991789c9dca080be3d35a7e72479b91e9 Mon Sep 17 00:00:00 2001
|
||||
From 47c82abe6f2ddc2de58719c0dc3fb8588b2d6765 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:38 -0800
|
||||
Subject: [PATCH 27/42] Drivers: hv: vmbus: define the new offer type for
|
||||
Subject: [PATCH 27/44] Drivers: hv: vmbus: define the new offer type for
|
||||
Hyper-V socket (hvsock)
|
||||
|
||||
A helper function is also added.
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 934542a..a4f105d 100644
|
||||
index 934542ac1394..a4f105d55881 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -237,6 +237,7 @@ struct vmbus_channel_offer {
|
||||
@ -40,5 +40,5 @@ index 934542a..a4f105d 100644
|
||||
enum hv_signal_policy policy)
|
||||
{
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 60af2c3c5565e40ee66123edb9386ccaa1355dff Mon Sep 17 00:00:00 2001
|
||||
From 3f42252209bb88705c6c00609b258f902871bc2a Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:39 -0800
|
||||
Subject: [PATCH 28/42] Drivers: hv: vmbus: vmbus_sendpacket_ctl: hvsock: avoid
|
||||
Subject: [PATCH 28/44] Drivers: hv: vmbus: vmbus_sendpacket_ctl: hvsock: avoid
|
||||
unnecessary signaling
|
||||
|
||||
When the hvsock channel's outbound ringbuffer is full (i.e.,
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index dd6de7f..128dcf2 100644
|
||||
index dd6de7fc442f..128dcf22e459 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -659,6 +659,9 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
||||
@ -41,5 +41,5 @@ index dd6de7f..128dcf2 100644
|
||||
|
||||
return ret;
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2c5183043209906ad0a41fb1a5b4d0c4c8a8e735 Mon Sep 17 00:00:00 2001
|
||||
From 0dccd1ae4a259fed2c1301d5cc1476eba75919bb Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:40 -0800
|
||||
Subject: [PATCH 29/42] Drivers: hv: vmbus: define a new VMBus message type for
|
||||
Subject: [PATCH 29/44] Drivers: hv: vmbus: define a new VMBus message type for
|
||||
hvsock
|
||||
|
||||
A function to send the type of message is also added.
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
3 files changed, 32 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 128dcf2..415f6c7 100644
|
||||
index 128dcf22e459..415f6c7d92a6 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -219,6 +219,21 @@ error0:
|
||||
@ -46,7 +46,7 @@ index 128dcf2..415f6c7 100644
|
||||
* create_gpadl_header - Creates a gpadl for the specified buffer
|
||||
*/
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index d6c6114..60ca25b 100644
|
||||
index d6c611457601..60ca25b93b4c 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -958,6 +958,10 @@ struct vmbus_channel_message_table_entry
|
||||
@ -61,7 +61,7 @@ index d6c6114..60ca25b 100644
|
||||
|
||||
/*
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index a4f105d..191bc5d 100644
|
||||
index a4f105d55881..191bc5d0ffbf 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -394,6 +394,10 @@ enum vmbus_channel_message_type {
|
||||
@ -97,5 +97,5 @@ index a4f105d..191bc5d 100644
|
||||
+ const uuid_le *shv_host_servie_id);
|
||||
#endif /* _HYPERV_H */
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 58a10705d630bdcb5ea08c894d28851c73e9bd4f Mon Sep 17 00:00:00 2001
|
||||
From 373b96e951d271e553d9854267ce65baab0241da Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:41 -0800
|
||||
Subject: [PATCH 30/42] Drivers: hv: vmbus: add a hvsock flag in struct
|
||||
Subject: [PATCH 30/44] Drivers: hv: vmbus: add a hvsock flag in struct
|
||||
hv_driver
|
||||
|
||||
Only the coming hv_sock driver has a "true" value for this flag.
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
2 files changed, 18 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index de7130c..03fc5d3 100644
|
||||
index de7130c58a62..03fc5d317b22 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -585,6 +585,10 @@ static int vmbus_match(struct device *device, struct device_driver *driver)
|
||||
@ -35,7 +35,7 @@ index de7130c..03fc5d3 100644
|
||||
return 1;
|
||||
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 191bc5d..05966e2 100644
|
||||
index 191bc5d0ffbf..05966e279ec8 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -992,6 +992,20 @@ extern void vmbus_ontimer(unsigned long data);
|
||||
@ -60,5 +60,5 @@ index 191bc5d..05966e2 100644
|
||||
uuid_le dev_type;
|
||||
const struct hv_vmbus_device_id *id_table;
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 6dd9db116b0985dfc56b3028205549f4c52d8be0 Mon Sep 17 00:00:00 2001
|
||||
From af38922b309452853cb5cf1e67a07aab4f0da8dd Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:42 -0800
|
||||
Subject: [PATCH 31/42] Drivers: hv: vmbus: add a per-channel rescind callback
|
||||
Subject: [PATCH 31/44] Drivers: hv: vmbus: add a per-channel rescind callback
|
||||
|
||||
This will be used by the coming hv_sock driver.
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
2 files changed, 20 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 60ca25b..76864c9 100644
|
||||
index 60ca25b93b4c..76864c98a110 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -741,6 +741,10 @@ static void vmbus_onoffer_rescind(struct vmbus_channel_message_header *hdr)
|
||||
@ -41,7 +41,7 @@ index 60ca25b..76864c9 100644
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(vmbus_set_chn_rescind_callback);
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 05966e2..ad04017 100644
|
||||
index 05966e279ec8..ad04017ba06f 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -768,6 +768,12 @@ struct vmbus_channel {
|
||||
@ -68,5 +68,5 @@ index 05966e2..ad04017 100644
|
||||
* Retrieve the (sub) channel on which to send an outgoing request.
|
||||
* When a primary channel has multiple sub-channels, we choose a
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5e89daa5e8c0b5950b46ba77dd6248c5e61bc405 Mon Sep 17 00:00:00 2001
|
||||
From 9b2cf4ec84e167a677b1deda17e8cef862d795b6 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:43 -0800
|
||||
Subject: [PATCH 32/42] Drivers: hv: vmbus: add an API
|
||||
Subject: [PATCH 32/44] Drivers: hv: vmbus: add an API
|
||||
vmbus_hvsock_device_unregister()
|
||||
|
||||
The hvsock driver needs this API to release all the resources related
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
3 files changed, 32 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 76864c9..cf311be 100644
|
||||
index 76864c98a110..cf311be88cb4 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -310,6 +310,7 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid)
|
||||
@ -114,7 +114,7 @@ index 76864c9..cf311be 100644
|
||||
* vmbus_onoffers_delivered -
|
||||
* This is invoked when all offers have been delivered.
|
||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
||||
index 521f48e..09c08b5 100644
|
||||
index 521f48ed188e..09c08b56e3dc 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -285,7 +285,8 @@ struct vmbus_channel *relid2channel(u32 relid)
|
||||
@ -136,7 +136,7 @@ index 521f48e..09c08b5 100644
|
||||
return found_channel;
|
||||
}
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index ad04017..993318a 100644
|
||||
index ad04017ba06f..993318a6d147 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1071,6 +1071,8 @@ int __must_check __vmbus_driver_register(struct hv_driver *hv_driver,
|
||||
@ -149,5 +149,5 @@ index ad04017..993318a 100644
|
||||
resource_size_t min, resource_size_t max,
|
||||
resource_size_t size, resource_size_t align,
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b7e3c4ad47b7fd47a79a723ac0c1823b6782d1ff Mon Sep 17 00:00:00 2001
|
||||
From a62a66fbd2a18f72dfae5f6e3a50e1abb0cf8322 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Wed, 27 Jan 2016 22:29:45 -0800
|
||||
Subject: [PATCH 33/42] Drivers: hv: vmbus: Give control over how the ring
|
||||
Subject: [PATCH 33/44] Drivers: hv: vmbus: Give control over how the ring
|
||||
access is serialized
|
||||
|
||||
On the channel send side, many of the VMBUS
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
5 files changed, 37 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 415f6c7..57a1b65 100644
|
||||
index 415f6c7d92a6..57a1b659d05f 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -639,6 +639,7 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
||||
@ -99,7 +99,7 @@ index 415f6c7..57a1b65 100644
|
||||
if (ret == 0 && signal)
|
||||
vmbus_setevent(channel);
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index cf311be..b40f429 100644
|
||||
index cf311be88cb4..b40f429aaa13 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -259,6 +259,7 @@ static struct vmbus_channel *alloc_channel(void)
|
||||
@ -111,7 +111,7 @@ index cf311be..b40f429 100644
|
||||
spin_lock_init(&channel->lock);
|
||||
|
||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
||||
index 50b1de7..89bb559 100644
|
||||
index 50b1de7439cf..89bb5591498e 100644
|
||||
--- a/drivers/hv/hyperv_vmbus.h
|
||||
+++ b/drivers/hv/hyperv_vmbus.h
|
||||
@@ -617,7 +617,7 @@ void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info);
|
||||
@ -124,7 +124,7 @@ index 50b1de7..89bb559 100644
|
||||
int hv_ringbuffer_peek(struct hv_ring_buffer_info *ring_info, void *buffer,
|
||||
u32 buflen);
|
||||
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
|
||||
index 70a1a9a..89a428f 100644
|
||||
index 70a1a9a22f87..89a428f7dc46 100644
|
||||
--- a/drivers/hv/ring_buffer.c
|
||||
+++ b/drivers/hv/ring_buffer.c
|
||||
@@ -388,7 +388,7 @@ void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info)
|
||||
@ -175,7 +175,7 @@ index 70a1a9a..89a428f 100644
|
||||
*signal = hv_need_to_signal(old_write, outring_info);
|
||||
return 0;
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 993318a..6c9695e 100644
|
||||
index 993318a6d147..6c9695ef757e 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -813,8 +813,24 @@ struct vmbus_channel {
|
||||
@ -204,5 +204,5 @@ index 993318a..6c9695e 100644
|
||||
{
|
||||
return !!(c->offermsg.offer.chn_flags &
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From af2dd29e3cf40c789045199893c232d57f0b7057 Mon Sep 17 00:00:00 2001
|
||||
From a71950ae5474cdb6dabb2aac9ef05bf51a6331d6 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Fri, 26 Feb 2016 15:13:16 -0800
|
||||
Subject: [PATCH 34/42] Drivers: hv: vmbus: avoid wait_for_completion() on
|
||||
Subject: [PATCH 34/44] Drivers: hv: vmbus: avoid wait_for_completion() on
|
||||
crash
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
4 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index b40f429..f70e352 100644
|
||||
index b40f429aaa13..f70e35278b94 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -641,7 +641,7 @@ static void vmbus_unload_response(struct vmbus_channel_message_header *hdr)
|
||||
@ -48,7 +48,7 @@ index b40f429..f70e352 100644
|
||||
else
|
||||
vmbus_wait_for_unload();
|
||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
||||
index 09c08b5..78b8be8 100644
|
||||
index 09c08b56e3dc..78b8be87844c 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -233,7 +233,7 @@ void vmbus_disconnect(void)
|
||||
@ -61,7 +61,7 @@ index 09c08b5..78b8be8 100644
|
||||
if (vmbus_connection.work_queue) {
|
||||
drain_workqueue(vmbus_connection.work_queue);
|
||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
||||
index 89bb559..f424c2d 100644
|
||||
index 89bb5591498e..f424c2df6c19 100644
|
||||
--- a/drivers/hv/hyperv_vmbus.h
|
||||
+++ b/drivers/hv/hyperv_vmbus.h
|
||||
@@ -756,7 +756,7 @@ void hv_vss_onchannelcallback(void *);
|
||||
@ -74,7 +74,7 @@ index 89bb559..f424c2d 100644
|
||||
static inline void hv_poll_channel(struct vmbus_channel *channel,
|
||||
void (*cb)(void *))
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index 03fc5d3..b0cc6fd 100644
|
||||
index 03fc5d317b22..b0cc6fd74fd0 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -1276,7 +1276,7 @@ static void hv_kexec_handler(void)
|
||||
@ -96,5 +96,5 @@ index 03fc5d3..b0cc6fd 100644
|
||||
* In crash handler we can't schedule synic cleanup for all CPUs,
|
||||
* doing the cleanup for current CPU only. This should be sufficient
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From fa3647ae889af3cccaaee37ac0723fc1b74689e3 Mon Sep 17 00:00:00 2001
|
||||
From b0bf62f85f29a28c998b288aa164f98b449776a9 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Fri, 26 Feb 2016 15:13:18 -0800
|
||||
Subject: [PATCH 35/42] Drivers: hv: vmbus: avoid unneeded compiler
|
||||
Subject: [PATCH 35/44] Drivers: hv: vmbus: avoid unneeded compiler
|
||||
optimizations in vmbus_wait_for_unload()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index f70e352..c892db5 100644
|
||||
index f70e35278b94..c892db5df665 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -605,7 +605,7 @@ static void vmbus_wait_for_unload(void)
|
||||
@ -35,5 +35,5 @@ index f70e352..c892db5 100644
|
||||
continue;
|
||||
}
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From afde92b79d7bbdf25d3f583898cbee4773b07d41 Mon Sep 17 00:00:00 2001
|
||||
From b925b9f249062386d3fb47119e0f0aeab94824d5 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Herbert <tom@herbertland.com>
|
||||
Date: Mon, 7 Mar 2016 14:11:06 -0800
|
||||
Subject: [PATCH 36/42] kcm: Kernel Connection Multiplexor module
|
||||
Subject: [PATCH 36/44] kcm: Kernel Connection Multiplexor module
|
||||
|
||||
This module implements the Kernel Connection Multiplexor.
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
create mode 100644 net/kcm/kcmsock.c
|
||||
|
||||
diff --git a/include/linux/socket.h b/include/linux/socket.h
|
||||
index 5bf59c8..4e1ea53 100644
|
||||
index 5bf59c8493b7..4e1ea53aa329 100644
|
||||
--- a/include/linux/socket.h
|
||||
+++ b/include/linux/socket.h
|
||||
@@ -200,7 +200,9 @@ struct ucred {
|
||||
@ -64,7 +64,7 @@ index 5bf59c8..4e1ea53 100644
|
||||
#define IPX_TYPE 1
|
||||
diff --git a/include/net/kcm.h b/include/net/kcm.h
|
||||
new file mode 100644
|
||||
index 0000000..1bcae39
|
||||
index 000000000000..1bcae39070ec
|
||||
--- /dev/null
|
||||
+++ b/include/net/kcm.h
|
||||
@@ -0,0 +1,125 @@
|
||||
@ -195,7 +195,7 @@ index 0000000..1bcae39
|
||||
+#endif /* __NET_KCM_H_ */
|
||||
diff --git a/include/uapi/linux/kcm.h b/include/uapi/linux/kcm.h
|
||||
new file mode 100644
|
||||
index 0000000..d72350f
|
||||
index 000000000000..d72350fd048d
|
||||
--- /dev/null
|
||||
+++ b/include/uapi/linux/kcm.h
|
||||
@@ -0,0 +1,39 @@
|
||||
@ -239,7 +239,7 @@ index 0000000..d72350f
|
||||
+
|
||||
+#endif
|
||||
diff --git a/net/Kconfig b/net/Kconfig
|
||||
index 127da94..b8439e6 100644
|
||||
index 127da94ae25e..b8439e61f9a0 100644
|
||||
--- a/net/Kconfig
|
||||
+++ b/net/Kconfig
|
||||
@@ -351,6 +351,7 @@ source "net/can/Kconfig"
|
||||
@ -251,7 +251,7 @@ index 127da94..b8439e6 100644
|
||||
config FIB_RULES
|
||||
bool
|
||||
diff --git a/net/Makefile b/net/Makefile
|
||||
index a5d0409..81d1411 100644
|
||||
index a5d04098dfce..81d14119eab5 100644
|
||||
--- a/net/Makefile
|
||||
+++ b/net/Makefile
|
||||
@@ -34,6 +34,7 @@ obj-$(CONFIG_IRDA) += irda/
|
||||
@ -264,7 +264,7 @@ index a5d0409..81d1411 100644
|
||||
obj-$(CONFIG_DECNET) += decnet/
|
||||
diff --git a/net/kcm/Kconfig b/net/kcm/Kconfig
|
||||
new file mode 100644
|
||||
index 0000000..4f28332
|
||||
index 000000000000..4f28332c7f15
|
||||
--- /dev/null
|
||||
+++ b/net/kcm/Kconfig
|
||||
@@ -0,0 +1,9 @@
|
||||
@ -279,7 +279,7 @@ index 0000000..4f28332
|
||||
+ protocol over kernel connectons (e.g. TCP connections).
|
||||
diff --git a/net/kcm/Makefile b/net/kcm/Makefile
|
||||
new file mode 100644
|
||||
index 0000000..cb525f7
|
||||
index 000000000000..cb525f7c5a13
|
||||
--- /dev/null
|
||||
+++ b/net/kcm/Makefile
|
||||
@@ -0,0 +1,3 @@
|
||||
@ -288,7 +288,7 @@ index 0000000..cb525f7
|
||||
+kcm-y := kcmsock.o
|
||||
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c
|
||||
new file mode 100644
|
||||
index 0000000..649d246
|
||||
index 000000000000..649d246c6799
|
||||
--- /dev/null
|
||||
+++ b/net/kcm/kcmsock.c
|
||||
@@ -0,0 +1,2015 @@
|
||||
@ -2308,5 +2308,5 @@ index 0000000..649d246
|
||||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_ALIAS_NETPROTO(PF_KCM);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2f2e6e31ed1b82f1658139e0abe7155ee3755da1 Mon Sep 17 00:00:00 2001
|
||||
From b6ca7ee0ff47bd5858de7dd01a1e4144f60b02fd Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 21 Mar 2016 02:51:09 -0700
|
||||
Subject: [PATCH 37/42] net: add the AF_KCM entries to family name tables
|
||||
Subject: [PATCH 37/44] net: add the AF_KCM entries to family name tables
|
||||
|
||||
This is for the recent kcm driver, which introduces AF_KCM(41) in
|
||||
b7ac4eb(kcm: Kernel Connection Multiplexor module).
|
||||
@ -14,7 +14,7 @@ Origin: https://patchwork.ozlabs.org/patch/600006
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/net/core/sock.c b/net/core/sock.c
|
||||
index 0d91f7d..925def4 100644
|
||||
index f4c0917e66b5..ba24aeb6999c 100644
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -263,7 +263,8 @@ static const char *const af_family_key_strings[AF_MAX+1] = {
|
||||
@ -48,5 +48,5 @@ index 0d91f7d..925def4 100644
|
||||
|
||||
/*
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9e184cb0991a4cc08cd7688f2d4e23740c60e382 Mon Sep 17 00:00:00 2001
|
||||
From 3687c27135029a89719a0e6f1d4c1478ca8a5047 Mon Sep 17 00:00:00 2001
|
||||
From: Courtney Cavin <courtney.cavin@sonymobile.com>
|
||||
Date: Wed, 27 Apr 2016 12:13:03 -0700
|
||||
Subject: [PATCH 38/42] net: Add Qualcomm IPC router
|
||||
Subject: [PATCH 38/44] net: Add Qualcomm IPC router
|
||||
|
||||
Add an implementation of Qualcomm's IPC router protocol, used to
|
||||
communicate with service providing remote processors.
|
||||
@ -30,7 +30,7 @@ Origin: https://patchwork.ozlabs.org/patch/615774/
|
||||
create mode 100644 net/qrtr/smd.c
|
||||
|
||||
diff --git a/include/linux/socket.h b/include/linux/socket.h
|
||||
index 4e1ea53..dbd81e7 100644
|
||||
index 4e1ea53aa329..dbd81e7f21fd 100644
|
||||
--- a/include/linux/socket.h
|
||||
+++ b/include/linux/socket.h
|
||||
@@ -201,8 +201,9 @@ struct ucred {
|
||||
@ -54,7 +54,7 @@ index 4e1ea53..dbd81e7 100644
|
||||
/* Maximum queue length specifiable by listen. */
|
||||
diff --git a/include/uapi/linux/qrtr.h b/include/uapi/linux/qrtr.h
|
||||
new file mode 100644
|
||||
index 0000000..66c0748
|
||||
index 000000000000..66c0748d26e2
|
||||
--- /dev/null
|
||||
+++ b/include/uapi/linux/qrtr.h
|
||||
@@ -0,0 +1,12 @@
|
||||
@ -71,7 +71,7 @@ index 0000000..66c0748
|
||||
+
|
||||
+#endif /* _LINUX_QRTR_H */
|
||||
diff --git a/net/Kconfig b/net/Kconfig
|
||||
index b8439e6..1c9fda1 100644
|
||||
index b8439e61f9a0..1c9fda1c602d 100644
|
||||
--- a/net/Kconfig
|
||||
+++ b/net/Kconfig
|
||||
@@ -233,6 +233,7 @@ source "net/mpls/Kconfig"
|
||||
@ -83,7 +83,7 @@ index b8439e6..1c9fda1 100644
|
||||
config RPS
|
||||
bool
|
||||
diff --git a/net/Makefile b/net/Makefile
|
||||
index 81d1411..bdd1455 100644
|
||||
index 81d14119eab5..bdd14553a774 100644
|
||||
--- a/net/Makefile
|
||||
+++ b/net/Makefile
|
||||
@@ -78,3 +78,4 @@ endif
|
||||
@ -93,7 +93,7 @@ index 81d1411..bdd1455 100644
|
||||
+obj-$(CONFIG_QRTR) += qrtr/
|
||||
diff --git a/net/qrtr/Kconfig b/net/qrtr/Kconfig
|
||||
new file mode 100644
|
||||
index 0000000..0c2619d
|
||||
index 000000000000..0c2619d068bd
|
||||
--- /dev/null
|
||||
+++ b/net/qrtr/Kconfig
|
||||
@@ -0,0 +1,24 @@
|
||||
@ -123,7 +123,7 @@ index 0000000..0c2619d
|
||||
+endif # QRTR
|
||||
diff --git a/net/qrtr/Makefile b/net/qrtr/Makefile
|
||||
new file mode 100644
|
||||
index 0000000..e282a84
|
||||
index 000000000000..e282a84ffc5c
|
||||
--- /dev/null
|
||||
+++ b/net/qrtr/Makefile
|
||||
@@ -0,0 +1,2 @@
|
||||
@ -131,7 +131,7 @@ index 0000000..e282a84
|
||||
+obj-$(CONFIG_QRTR_SMD) += smd.o
|
||||
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c
|
||||
new file mode 100644
|
||||
index 0000000..c985ecb
|
||||
index 000000000000..c985ecbe9bd6
|
||||
--- /dev/null
|
||||
+++ b/net/qrtr/qrtr.c
|
||||
@@ -0,0 +1,1007 @@
|
||||
@ -1144,7 +1144,7 @@ index 0000000..c985ecb
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
diff --git a/net/qrtr/qrtr.h b/net/qrtr/qrtr.h
|
||||
new file mode 100644
|
||||
index 0000000..2b84871
|
||||
index 000000000000..2b848718f8fe
|
||||
--- /dev/null
|
||||
+++ b/net/qrtr/qrtr.h
|
||||
@@ -0,0 +1,31 @@
|
||||
@ -1181,7 +1181,7 @@ index 0000000..2b84871
|
||||
+#endif
|
||||
diff --git a/net/qrtr/smd.c b/net/qrtr/smd.c
|
||||
new file mode 100644
|
||||
index 0000000..84ebce7
|
||||
index 000000000000..84ebce73aa23
|
||||
--- /dev/null
|
||||
+++ b/net/qrtr/smd.c
|
||||
@@ -0,0 +1,117 @@
|
||||
@ -1303,5 +1303,5 @@ index 0000000..84ebce7
|
||||
+MODULE_DESCRIPTION("Qualcomm IPC-Router SMD interface driver");
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 51293adacd73d7bc6baee18e87b0d17ad52a61d4 Mon Sep 17 00:00:00 2001
|
||||
From ddba6d4b693a1f67f32ea40ddaf6c240f6615b01 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Sun, 15 May 2016 09:53:11 -0700
|
||||
Subject: [PATCH 39/42] hv_sock: introduce Hyper-V Sockets
|
||||
Subject: [PATCH 39/44] hv_sock: introduce Hyper-V Sockets
|
||||
|
||||
Hyper-V Sockets (hv_sock) supplies a byte-stream based communication
|
||||
mechanism between the host and the guest. It's somewhat like TCP over
|
||||
@ -41,7 +41,7 @@ Origin: https://patchwork.ozlabs.org/patch/622404/
|
||||
create mode 100644 net/hv_sock/af_hvsock.c
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index 12d49f5..fa87bdd 100644
|
||||
index 12d49f58c4e0..fa87bddcf2df 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -5123,7 +5123,9 @@ F: drivers/input/serio/hyperv-keyboard.c
|
||||
@ -55,7 +55,7 @@ index 12d49f5..fa87bdd 100644
|
||||
F: Documentation/ABI/stable/sysfs-bus-vmbus
|
||||
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 6c9695e..187d4bd 100644
|
||||
index 6c9695ef757e..187d4bda4d8c 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1349,4 +1349,18 @@ extern __u32 vmbus_proto_version;
|
||||
@ -78,7 +78,7 @@ index 6c9695e..187d4bd 100644
|
||||
+ PREV_INDICES_LEN)
|
||||
#endif /* _HYPERV_H */
|
||||
diff --git a/include/linux/socket.h b/include/linux/socket.h
|
||||
index dbd81e7..6634c47 100644
|
||||
index dbd81e7f21fd..6634c47c1825 100644
|
||||
--- a/include/linux/socket.h
|
||||
+++ b/include/linux/socket.h
|
||||
@@ -202,8 +202,9 @@ struct ucred {
|
||||
@ -102,7 +102,7 @@ index dbd81e7..6634c47 100644
|
||||
/* Maximum queue length specifiable by listen. */
|
||||
diff --git a/include/net/af_hvsock.h b/include/net/af_hvsock.h
|
||||
new file mode 100644
|
||||
index 0000000..7c8c41e
|
||||
index 000000000000..7c8c41e78157
|
||||
--- /dev/null
|
||||
+++ b/include/net/af_hvsock.h
|
||||
@@ -0,0 +1,78 @@
|
||||
@ -185,7 +185,7 @@ index 0000000..7c8c41e
|
||||
+
|
||||
+#endif /* __AF_HVSOCK_H__ */
|
||||
diff --git a/include/uapi/linux/hyperv.h b/include/uapi/linux/hyperv.h
|
||||
index e347b24..408b832 100644
|
||||
index e347b24ef9fb..408b832716b8 100644
|
||||
--- a/include/uapi/linux/hyperv.h
|
||||
+++ b/include/uapi/linux/hyperv.h
|
||||
@@ -26,6 +26,7 @@
|
||||
@ -226,7 +226,7 @@ index e347b24..408b832 100644
|
||||
+
|
||||
#endif /* _UAPI_HYPERV_H */
|
||||
diff --git a/net/Kconfig b/net/Kconfig
|
||||
index 1c9fda1..9eeccb7 100644
|
||||
index 1c9fda1c602d..9eeccb75ee4e 100644
|
||||
--- a/net/Kconfig
|
||||
+++ b/net/Kconfig
|
||||
@@ -228,6 +228,7 @@ source "net/dns_resolver/Kconfig"
|
||||
@ -238,7 +238,7 @@ index 1c9fda1..9eeccb7 100644
|
||||
source "net/mpls/Kconfig"
|
||||
source "net/hsr/Kconfig"
|
||||
diff --git a/net/Makefile b/net/Makefile
|
||||
index bdd1455..ec175dd 100644
|
||||
index bdd14553a774..ec175ddfac38 100644
|
||||
--- a/net/Makefile
|
||||
+++ b/net/Makefile
|
||||
@@ -70,6 +70,7 @@ obj-$(CONFIG_BATMAN_ADV) += batman-adv/
|
||||
@ -251,7 +251,7 @@ index bdd1455..ec175dd 100644
|
||||
ifneq ($(CONFIG_NET_SWITCHDEV),)
|
||||
diff --git a/net/hv_sock/Kconfig b/net/hv_sock/Kconfig
|
||||
new file mode 100644
|
||||
index 0000000..1f41848
|
||||
index 000000000000..1f4184829dde
|
||||
--- /dev/null
|
||||
+++ b/net/hv_sock/Kconfig
|
||||
@@ -0,0 +1,10 @@
|
||||
@ -267,7 +267,7 @@ index 0000000..1f41848
|
||||
+ will be called hv_sock.
|
||||
diff --git a/net/hv_sock/Makefile b/net/hv_sock/Makefile
|
||||
new file mode 100644
|
||||
index 0000000..716c012
|
||||
index 000000000000..716c01230129
|
||||
--- /dev/null
|
||||
+++ b/net/hv_sock/Makefile
|
||||
@@ -0,0 +1,3 @@
|
||||
@ -276,7 +276,7 @@ index 0000000..716c012
|
||||
+hv_sock-y += af_hvsock.o
|
||||
diff --git a/net/hv_sock/af_hvsock.c b/net/hv_sock/af_hvsock.c
|
||||
new file mode 100644
|
||||
index 0000000..b91bd60
|
||||
index 000000000000..b91bd608bf39
|
||||
--- /dev/null
|
||||
+++ b/net/hv_sock/af_hvsock.c
|
||||
@@ -0,0 +1,1520 @@
|
||||
@ -1801,5 +1801,5 @@ index 0000000..b91bd60
|
||||
+MODULE_DESCRIPTION("Hyper-V Sockets");
|
||||
+MODULE_LICENSE("Dual BSD/GPL");
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b7da2c01ddbb00ed9ccdd3d646f6129f07016cf8 Mon Sep 17 00:00:00 2001
|
||||
From 9f77b052096cbdc1fe56c00b19a95855a8c3849e Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 21 Mar 2016 02:53:08 -0700
|
||||
Subject: [PATCH 40/42] net: add the AF_HYPERV entries to family name tables
|
||||
Subject: [PATCH 40/44] net: add the AF_HYPERV entries to family name tables
|
||||
|
||||
This is for the hv_sock driver, which introduces AF_HYPERV(42).
|
||||
|
||||
@ -14,7 +14,7 @@ Origin: https://patchwork.ozlabs.org/patch/600009
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/net/core/sock.c b/net/core/sock.c
|
||||
index 925def4..323f7a3 100644
|
||||
index ba24aeb6999c..c75ebeec3290 100644
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -264,7 +264,7 @@ static const char *const af_family_key_strings[AF_MAX+1] = {
|
||||
@ -45,5 +45,5 @@ index 925def4..323f7a3 100644
|
||||
|
||||
/*
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cd11346c60451032d97062e25ed025bf692dff91 Mon Sep 17 00:00:00 2001
|
||||
From 23b4d08adcd276a1fcd8949b09f75f722f5ecaa2 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Sat, 21 May 2016 16:55:50 +0800
|
||||
Subject: [PATCH 41/42] Drivers: hv: vmbus: fix the race when querying &
|
||||
Subject: [PATCH 41/44] Drivers: hv: vmbus: fix the race when querying &
|
||||
updating the percpu list
|
||||
|
||||
There is a rare race when we remove an entry from the global list
|
||||
@ -28,7 +28,7 @@ Origin: https://github.com/dcui/linux/commit/fbcca73228b9b90911ab30fdf75f532b2b7
|
||||
2 files changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 57a1b65..da76a2e 100644
|
||||
index 57a1b659d05f..da76a2e9199a 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -592,6 +592,7 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
||||
@ -40,7 +40,7 @@ index 57a1b65..da76a2e 100644
|
||||
return ret;
|
||||
}
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index c892db5..0a54317 100644
|
||||
index c892db5df665..0a543170eba0 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -21,6 +21,7 @@
|
||||
@ -129,5 +129,5 @@ index c892db5..0a54317 100644
|
||||
err_free_chan:
|
||||
free_channel(newchannel);
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 7abd92fd5987e1ad79f2272cbe544be0cfe84165 Mon Sep 17 00:00:00 2001
|
||||
From ffb0e64e9dbe037beb69dda9daf6567582adcac1 Mon Sep 17 00:00:00 2001
|
||||
From: Rolf Neugebauer <rolf.neugebauer@gmail.com>
|
||||
Date: Mon, 23 May 2016 18:55:45 +0100
|
||||
Subject: [PATCH 42/42] vmbus: Don't spam the logs with unknown GUIDs
|
||||
Subject: [PATCH 42/44] vmbus: Don't spam the logs with unknown GUIDs
|
||||
|
||||
With Hyper-V sockets device types are introduced on the fly. The pr_info()
|
||||
then prints a message on every connection, which is way too verbose. Since
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 0a54317..120ee22 100644
|
||||
index 0a543170eba0..120ee22c945e 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -147,7 +147,6 @@ static u16 hv_get_dev_type(const uuid_le *guid)
|
||||
@ -26,5 +26,5 @@ index 0a54317..120ee22 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.10.0
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9a08c352d05305ca7651540c3b107da1e4e1f40b Mon Sep 17 00:00:00 2001
|
||||
From 784c13b38b4413144b146699bb3ab090c291e6c2 Mon Sep 17 00:00:00 2001
|
||||
From: James Bottomley <James.Bottomley@HansenPartnership.com>
|
||||
Date: Wed, 17 Feb 2016 16:49:38 -0800
|
||||
Subject: [PATCH] fs: add filp_clone_open API
|
||||
Subject: [PATCH 43/44] fs: add filp_clone_open API
|
||||
|
||||
I need an API that allows me to obtain a clone of the current file
|
||||
pointer to pass in to an exec handler. I've labelled this as an
|
||||
@ -17,7 +17,7 @@ Acked-by: Jan Kara <jack@suse.cz>
|
||||
2 files changed, 21 insertions(+)
|
||||
|
||||
diff --git a/fs/internal.h b/fs/internal.h
|
||||
index b71deee..c8ca0c9 100644
|
||||
index 71859c4d0b41..c0022708ff3a 100644
|
||||
--- a/fs/internal.h
|
||||
+++ b/fs/internal.h
|
||||
@@ -108,6 +108,7 @@ extern long do_handle_open(int mountdirfd,
|
||||
@ -29,10 +29,10 @@ index b71deee..c8ca0c9 100644
|
||||
/*
|
||||
* inode.c
|
||||
diff --git a/fs/open.c b/fs/open.c
|
||||
index 17cb6b1..bfe6f2b 100644
|
||||
index 157b9940dd73..9d993f928ea0 100644
|
||||
--- a/fs/open.c
|
||||
+++ b/fs/open.c
|
||||
@@ -1002,6 +1002,26 @@ struct file *file_open_root(struct dentry *dentry, struct vfsmount *mnt,
|
||||
@@ -1001,6 +1001,26 @@ struct file *file_open_root(struct dentry *dentry, struct vfsmount *mnt,
|
||||
}
|
||||
EXPORT_SYMBOL(file_open_root);
|
||||
|
||||
@ -60,5 +60,5 @@ index 17cb6b1..bfe6f2b 100644
|
||||
{
|
||||
struct open_flags op;
|
||||
--
|
||||
1.9.1
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 948b701a607f123df92ed29084413e5dd8cda2ed Mon Sep 17 00:00:00 2001
|
||||
From 20127ca4e2ea3b4adfdf2161a915439454005579 Mon Sep 17 00:00:00 2001
|
||||
From: James Bottomley <James.Bottomley@HansenPartnership.com>
|
||||
Date: Wed, 17 Feb 2016 16:51:16 -0800
|
||||
Subject: [PATCH] binfmt_misc: add persistent opened binary handler for
|
||||
Subject: [PATCH 44/44] binfmt_misc: add persistent opened binary handler for
|
||||
containers
|
||||
|
||||
This patch adds a new flag 'F' to the binfmt handlers. If you pass in
|
||||
@ -20,7 +20,7 @@ Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
|
||||
1 file changed, 39 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
|
||||
index 3a3ced7..8a108c4 100644
|
||||
index 78f005f37847..4beb3d9e0001 100644
|
||||
--- a/fs/binfmt_misc.c
|
||||
+++ b/fs/binfmt_misc.c
|
||||
@@ -26,6 +26,8 @@
|
||||
@ -32,7 +32,7 @@ index 3a3ced7..8a108c4 100644
|
||||
#ifdef DEBUG
|
||||
# define USE_DEBUG 1
|
||||
#else
|
||||
@@ -43,6 +45,7 @@ enum {
|
||||
@@ -43,6 +45,7 @@ enum {Enabled, Magic};
|
||||
#define MISC_FMT_PRESERVE_ARGV0 (1 << 31)
|
||||
#define MISC_FMT_OPEN_BINARY (1 << 30)
|
||||
#define MISC_FMT_CREDENTIALS (1 << 29)
|
||||
@ -40,7 +40,7 @@ index 3a3ced7..8a108c4 100644
|
||||
|
||||
typedef struct {
|
||||
struct list_head list;
|
||||
@@ -54,6 +57,7 @@ enum {
|
||||
@@ -54,6 +57,7 @@ typedef struct {
|
||||
char *interpreter; /* filename of interpreter */
|
||||
char *name;
|
||||
struct dentry *dentry;
|
||||
@ -118,7 +118,7 @@ index 3a3ced7..8a108c4 100644
|
||||
e->dentry = dget(dentry);
|
||||
inode->i_private = e;
|
||||
inode->i_fop = &bm_entry_operations;
|
||||
@@ -716,7 +753,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
|
||||
@@ -716,7 +753,7 @@ out:
|
||||
|
||||
if (err) {
|
||||
kfree(e);
|
||||
@ -128,5 +128,5 @@ index 3a3ced7..8a108c4 100644
|
||||
return count;
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
2.11.0
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
From a7fb60aeef7164c65c5aa266e7fdd5f95b3fdd68 Mon Sep 17 00:00:00 2001
|
||||
From 1fc22bc5c2e3544786420355405038e4a12ffd72 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Campbell <ian.campbell@docker.com>
|
||||
Date: Mon, 4 Apr 2016 14:50:10 +0100
|
||||
Subject: [PATCH 1/7] VSOCK: Only allow host network namespace to use AF_VSOCK.
|
||||
Subject: [PATCH 01/11] VSOCK: Only allow host network namespace to use
|
||||
AF_VSOCK.
|
||||
|
||||
The VSOCK addressing schema does not really lend itself to simply creating an
|
||||
alternative end point address within a namespace.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e2b5d25399783a08694ce5dba5d4088921c69187 Mon Sep 17 00:00:00 2001
|
||||
From 0d9748d2d26216421225b41643c6167fda91c26f Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Sat, 23 Jul 2016 01:35:51 +0000
|
||||
Subject: [PATCH 2/7] hv_sock: introduce Hyper-V Sockets
|
||||
Subject: [PATCH 02/11] hv_sock: introduce Hyper-V Sockets
|
||||
|
||||
Hyper-V Sockets (hv_sock) supplies a byte-stream based communication
|
||||
mechanism between the host and the guest. It's somewhat like TCP over
|
||||
|
@ -1,7 +1,7 @@
|
||||
From dbf91b3ae58e0b7e1b7c92c53f70c0ebe0373edd Mon Sep 17 00:00:00 2001
|
||||
From c9168a8ff6c84924df9efec05257f74ed93981b2 Mon Sep 17 00:00:00 2001
|
||||
From: Rolf Neugebauer <rolf.neugebauer@gmail.com>
|
||||
Date: Mon, 23 May 2016 18:55:45 +0100
|
||||
Subject: [PATCH 3/7] vmbus: Don't spam the logs with unknown GUIDs
|
||||
Subject: [PATCH 03/11] vmbus: Don't spam the logs with unknown GUIDs
|
||||
|
||||
With Hyper-V sockets device types are introduced on the fly. The pr_info()
|
||||
then prints a message on every connection, which is way too verbose. Since
|
||||
|
@ -1,8 +1,8 @@
|
||||
From b5faf9d0201a0c720c25f23dab06d07693558c45 Mon Sep 17 00:00:00 2001
|
||||
From 24a17904f276ced95d717fc427c4f6ff256ac0a8 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Ng <alexng@messages.microsoft.com>
|
||||
Date: Sun, 6 Nov 2016 13:14:07 -0800
|
||||
Subject: [PATCH 4/7] Drivers: hv: utils: Fix the mapping between host version
|
||||
and protocol to use
|
||||
Subject: [PATCH 04/11] Drivers: hv: utils: Fix the mapping between host
|
||||
version and protocol to use
|
||||
|
||||
We should intentionally declare the protocols to use for every known host
|
||||
and default to using the latest protocol if the host is unknown or new.
|
||||
|
@ -1,8 +1,8 @@
|
||||
From e12cf066a2d5ad8f7e915e1925ee0b66ad99bc8b Mon Sep 17 00:00:00 2001
|
||||
From 5d339781f71a37083d4c4d304ba45b89aede184f Mon Sep 17 00:00:00 2001
|
||||
From: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||
Date: Wed, 11 Jan 2017 22:40:38 +0000
|
||||
Subject: [PATCH 5/7] Drivers: hv: utils: Force TimeSync version 3.0 on Windows
|
||||
10
|
||||
Subject: [PATCH 05/11] Drivers: hv: utils: Force TimeSync version 3.0 on
|
||||
Windows 10
|
||||
|
||||
Some older Windows 10 builds, including 10586 do not seem to
|
||||
support TimeSync protocol 4.0 causing loss of time synchronisation
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e71b5a916a8b24c02961150aafeeca40776f1c71 Mon Sep 17 00:00:00 2001
|
||||
From 4c63fbce6abc0eb36a21d760959aae954427dcf3 Mon Sep 17 00:00:00 2001
|
||||
From: David Sheets <david.sheets@docker.com>
|
||||
Date: Fri, 13 Jan 2017 15:58:30 +0000
|
||||
Subject: [PATCH 6/7] fuse: fix time_to_jiffies nsec sanity check
|
||||
Subject: [PATCH 06/11] fuse: fix time_to_jiffies nsec sanity check
|
||||
|
||||
Commit bcb6f6d2b9c2 ("fuse: use timespec64") introduced clamped nsec values
|
||||
in time_to_jiffies but used the max of nsec and NSEC_PER_SEC - 1 instead of
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 437e8d0400f01c896004f4eb4e54cf09bb265673 Mon Sep 17 00:00:00 2001
|
||||
From 00ef9fe4743da2cdd5b55d97335e678304329e24 Mon Sep 17 00:00:00 2001
|
||||
From: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||
Date: Tue, 17 Jan 2017 18:13:51 +0000
|
||||
Subject: [PATCH 7/7] virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on xmit
|
||||
Subject: [PATCH 07/11] virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on xmit
|
||||
|
||||
This patch part reverts fd2a0437dc33 and e858fae2b0b8 which introduced a
|
||||
subtle change in how the virtio_net flags are derived from the SKBs
|
||||
|
@ -0,0 +1,103 @@
|
||||
From 72c60164c3508d229686d64e624d1d2f47d01676 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Sun, 6 Nov 2016 13:14:16 -0800
|
||||
Subject: [PATCH 08/11] Drivers: hv: vmbus: Base host signaling strictly on the
|
||||
ring state
|
||||
|
||||
One of the factors that can result in the host concluding that a given
|
||||
guest in mounting a DOS attack is if the guest generates interrupts
|
||||
to the host when the host is not expecting it. If these "spurious"
|
||||
interrupts reach a certain rate, the host can throttle the guest to
|
||||
minimize the impact. The host computation of the "expected number
|
||||
of interrupts" is strictly based on the ring transitions. Until
|
||||
the host logic is fixed, base the guest logic to interrupt solely
|
||||
on the ring state.
|
||||
|
||||
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
(cherry picked from commit 74198eb4a42c4a3c4fbef08fa01a291a282f7c2e)
|
||||
---
|
||||
drivers/hv/channel.c | 23 ++++++++++++++++++++---
|
||||
drivers/hv/channel_mgmt.c | 2 --
|
||||
drivers/hv/ring_buffer.c | 7 -------
|
||||
3 files changed, 20 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 16f91c8490fe..5e482d7f60cb 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -676,10 +676,18 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
||||
* NOTE: in this case, the hvsock channel is an exception, because
|
||||
* it looks the host side's hvsock implementation has a throttling
|
||||
* mechanism which can hurt the performance otherwise.
|
||||
+ *
|
||||
+ * KYS: Oct. 30, 2016:
|
||||
+ * It looks like Windows hosts have logic to deal with DOS attacks that
|
||||
+ * can be triggered if it receives interrupts when it is not expecting
|
||||
+ * the interrupt. The host expects interrupts only when the ring
|
||||
+ * transitions from empty to non-empty (or full to non full on the guest
|
||||
+ * to host ring).
|
||||
+ * So, base the signaling decision solely on the ring state until the
|
||||
+ * host logic is fixed.
|
||||
*/
|
||||
|
||||
- if (((ret == 0) && kick_q && signal) ||
|
||||
- (ret && !is_hvsock_channel(channel)))
|
||||
+ if (((ret == 0) && signal))
|
||||
vmbus_setevent(channel);
|
||||
|
||||
return ret;
|
||||
@@ -786,9 +794,18 @@ int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel,
|
||||
* If we cannot write to the ring-buffer; signal the host
|
||||
* even if we may not have written anything. This is a rare
|
||||
* enough condition that it should not matter.
|
||||
+ *
|
||||
+ * KYS: Oct. 30, 2016:
|
||||
+ * It looks like Windows hosts have logic to deal with DOS attacks that
|
||||
+ * can be triggered if it receives interrupts when it is not expecting
|
||||
+ * the interrupt. The host expects interrupts only when the ring
|
||||
+ * transitions from empty to non-empty (or full to non full on the guest
|
||||
+ * to host ring).
|
||||
+ * So, base the signaling decision solely on the ring state until the
|
||||
+ * host logic is fixed.
|
||||
*/
|
||||
|
||||
- if (((ret == 0) && kick_q && signal) || (ret))
|
||||
+ if (((ret == 0) && signal))
|
||||
vmbus_setevent(channel);
|
||||
|
||||
return ret;
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index db5bccf4fa7e..8f3d9f787288 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -448,8 +448,6 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel)
|
||||
}
|
||||
|
||||
dev_type = hv_get_dev_type(newchannel);
|
||||
- if (dev_type == HV_NIC)
|
||||
- set_channel_signal_state(newchannel, HV_SIGNAL_POLICY_EXPLICIT);
|
||||
|
||||
init_vp_index(newchannel, dev_type);
|
||||
|
||||
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
|
||||
index 08043da1a61c..5d11d93eedf4 100644
|
||||
--- a/drivers/hv/ring_buffer.c
|
||||
+++ b/drivers/hv/ring_buffer.c
|
||||
@@ -75,13 +75,6 @@ static bool hv_need_to_signal(u32 old_write, struct hv_ring_buffer_info *rbi,
|
||||
if (READ_ONCE(rbi->ring_buffer->interrupt_mask))
|
||||
return false;
|
||||
|
||||
- /*
|
||||
- * When the client wants to control signaling,
|
||||
- * we only honour the host interrupt mask.
|
||||
- */
|
||||
- if (policy == HV_SIGNAL_POLICY_EXPLICIT)
|
||||
- return true;
|
||||
-
|
||||
/* check interrupt_mask before read_index */
|
||||
virt_rmb();
|
||||
/*
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,321 @@
|
||||
From f0472d013423117cae77e00089485f7d976138f2 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Sun, 6 Nov 2016 13:14:17 -0800
|
||||
Subject: [PATCH 09/11] Drivers: hv: vmbus: On write cleanup the logic to
|
||||
interrupt the host
|
||||
|
||||
Signal the host when we determine the host is to be signaled.
|
||||
The currrent code determines the need to signal in the ringbuffer
|
||||
code and actually issues the signal elsewhere. This can result
|
||||
in the host viewing this interrupt as spurious since the host may also
|
||||
poll the channel. Make the necessary adjustments.
|
||||
|
||||
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
(cherry picked from commit 1f6ee4e7d83586c8b10bd4f2f4346353d04ce884)
|
||||
---
|
||||
drivers/hv/channel.c | 99 +++++------------------------------------------
|
||||
drivers/hv/hyperv_vmbus.h | 6 +--
|
||||
drivers/hv/ring_buffer.c | 30 +++++++++-----
|
||||
include/linux/hyperv.h | 1 +
|
||||
4 files changed, 35 insertions(+), 101 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 5e482d7f60cb..8a8148f7b842 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -39,7 +39,7 @@
|
||||
* vmbus_setevent- Trigger an event notification on the specified
|
||||
* channel.
|
||||
*/
|
||||
-static void vmbus_setevent(struct vmbus_channel *channel)
|
||||
+void vmbus_setevent(struct vmbus_channel *channel)
|
||||
{
|
||||
struct hv_monitor_page *monitorpage;
|
||||
|
||||
@@ -65,6 +65,7 @@ static void vmbus_setevent(struct vmbus_channel *channel)
|
||||
vmbus_set_event(channel);
|
||||
}
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(vmbus_setevent);
|
||||
|
||||
/*
|
||||
* vmbus_open - Open the specified channel.
|
||||
@@ -635,8 +636,6 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
||||
u32 packetlen_aligned = ALIGN(packetlen, sizeof(u64));
|
||||
struct kvec bufferlist[3];
|
||||
u64 aligned_data = 0;
|
||||
- int ret;
|
||||
- bool signal = false;
|
||||
bool lock = channel->acquire_ring_lock;
|
||||
int num_vecs = ((bufferlen != 0) ? 3 : 1);
|
||||
|
||||
@@ -656,41 +655,9 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
||||
bufferlist[2].iov_base = &aligned_data;
|
||||
bufferlist[2].iov_len = (packetlen_aligned - packetlen);
|
||||
|
||||
- ret = hv_ringbuffer_write(&channel->outbound, bufferlist, num_vecs,
|
||||
- &signal, lock, channel->signal_policy);
|
||||
-
|
||||
- /*
|
||||
- * Signalling the host is conditional on many factors:
|
||||
- * 1. The ring state changed from being empty to non-empty.
|
||||
- * This is tracked by the variable "signal".
|
||||
- * 2. The variable kick_q tracks if more data will be placed
|
||||
- * on the ring. We will not signal if more data is
|
||||
- * to be placed.
|
||||
- *
|
||||
- * Based on the channel signal state, we will decide
|
||||
- * which signaling policy will be applied.
|
||||
- *
|
||||
- * If we cannot write to the ring-buffer; signal the host
|
||||
- * even if we may not have written anything. This is a rare
|
||||
- * enough condition that it should not matter.
|
||||
- * NOTE: in this case, the hvsock channel is an exception, because
|
||||
- * it looks the host side's hvsock implementation has a throttling
|
||||
- * mechanism which can hurt the performance otherwise.
|
||||
- *
|
||||
- * KYS: Oct. 30, 2016:
|
||||
- * It looks like Windows hosts have logic to deal with DOS attacks that
|
||||
- * can be triggered if it receives interrupts when it is not expecting
|
||||
- * the interrupt. The host expects interrupts only when the ring
|
||||
- * transitions from empty to non-empty (or full to non full on the guest
|
||||
- * to host ring).
|
||||
- * So, base the signaling decision solely on the ring state until the
|
||||
- * host logic is fixed.
|
||||
- */
|
||||
-
|
||||
- if (((ret == 0) && signal))
|
||||
- vmbus_setevent(channel);
|
||||
+ return hv_ringbuffer_write(channel, bufferlist, num_vecs,
|
||||
+ lock, kick_q);
|
||||
|
||||
- return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(vmbus_sendpacket_ctl);
|
||||
|
||||
@@ -731,7 +698,6 @@ int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel,
|
||||
u32 flags,
|
||||
bool kick_q)
|
||||
{
|
||||
- int ret;
|
||||
int i;
|
||||
struct vmbus_channel_packet_page_buffer desc;
|
||||
u32 descsize;
|
||||
@@ -739,7 +705,6 @@ int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel,
|
||||
u32 packetlen_aligned;
|
||||
struct kvec bufferlist[3];
|
||||
u64 aligned_data = 0;
|
||||
- bool signal = false;
|
||||
bool lock = channel->acquire_ring_lock;
|
||||
|
||||
if (pagecount > MAX_PAGE_BUFFER_COUNT)
|
||||
@@ -777,38 +742,8 @@ int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel,
|
||||
bufferlist[2].iov_base = &aligned_data;
|
||||
bufferlist[2].iov_len = (packetlen_aligned - packetlen);
|
||||
|
||||
- ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3,
|
||||
- &signal, lock, channel->signal_policy);
|
||||
-
|
||||
- /*
|
||||
- * Signalling the host is conditional on many factors:
|
||||
- * 1. The ring state changed from being empty to non-empty.
|
||||
- * This is tracked by the variable "signal".
|
||||
- * 2. The variable kick_q tracks if more data will be placed
|
||||
- * on the ring. We will not signal if more data is
|
||||
- * to be placed.
|
||||
- *
|
||||
- * Based on the channel signal state, we will decide
|
||||
- * which signaling policy will be applied.
|
||||
- *
|
||||
- * If we cannot write to the ring-buffer; signal the host
|
||||
- * even if we may not have written anything. This is a rare
|
||||
- * enough condition that it should not matter.
|
||||
- *
|
||||
- * KYS: Oct. 30, 2016:
|
||||
- * It looks like Windows hosts have logic to deal with DOS attacks that
|
||||
- * can be triggered if it receives interrupts when it is not expecting
|
||||
- * the interrupt. The host expects interrupts only when the ring
|
||||
- * transitions from empty to non-empty (or full to non full on the guest
|
||||
- * to host ring).
|
||||
- * So, base the signaling decision solely on the ring state until the
|
||||
- * host logic is fixed.
|
||||
- */
|
||||
-
|
||||
- if (((ret == 0) && signal))
|
||||
- vmbus_setevent(channel);
|
||||
-
|
||||
- return ret;
|
||||
+ return hv_ringbuffer_write(channel, bufferlist, 3,
|
||||
+ lock, kick_q);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vmbus_sendpacket_pagebuffer_ctl);
|
||||
|
||||
@@ -839,12 +774,10 @@ int vmbus_sendpacket_mpb_desc(struct vmbus_channel *channel,
|
||||
u32 desc_size,
|
||||
void *buffer, u32 bufferlen, u64 requestid)
|
||||
{
|
||||
- int ret;
|
||||
u32 packetlen;
|
||||
u32 packetlen_aligned;
|
||||
struct kvec bufferlist[3];
|
||||
u64 aligned_data = 0;
|
||||
- bool signal = false;
|
||||
bool lock = channel->acquire_ring_lock;
|
||||
|
||||
packetlen = desc_size + bufferlen;
|
||||
@@ -865,13 +798,8 @@ int vmbus_sendpacket_mpb_desc(struct vmbus_channel *channel,
|
||||
bufferlist[2].iov_base = &aligned_data;
|
||||
bufferlist[2].iov_len = (packetlen_aligned - packetlen);
|
||||
|
||||
- ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3,
|
||||
- &signal, lock, channel->signal_policy);
|
||||
-
|
||||
- if (ret == 0 && signal)
|
||||
- vmbus_setevent(channel);
|
||||
-
|
||||
- return ret;
|
||||
+ return hv_ringbuffer_write(channel, bufferlist, 3,
|
||||
+ lock, true);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vmbus_sendpacket_mpb_desc);
|
||||
|
||||
@@ -883,14 +811,12 @@ int vmbus_sendpacket_multipagebuffer(struct vmbus_channel *channel,
|
||||
struct hv_multipage_buffer *multi_pagebuffer,
|
||||
void *buffer, u32 bufferlen, u64 requestid)
|
||||
{
|
||||
- int ret;
|
||||
struct vmbus_channel_packet_multipage_buffer desc;
|
||||
u32 descsize;
|
||||
u32 packetlen;
|
||||
u32 packetlen_aligned;
|
||||
struct kvec bufferlist[3];
|
||||
u64 aligned_data = 0;
|
||||
- bool signal = false;
|
||||
bool lock = channel->acquire_ring_lock;
|
||||
u32 pfncount = NUM_PAGES_SPANNED(multi_pagebuffer->offset,
|
||||
multi_pagebuffer->len);
|
||||
@@ -930,13 +856,8 @@ int vmbus_sendpacket_multipagebuffer(struct vmbus_channel *channel,
|
||||
bufferlist[2].iov_base = &aligned_data;
|
||||
bufferlist[2].iov_len = (packetlen_aligned - packetlen);
|
||||
|
||||
- ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3,
|
||||
- &signal, lock, channel->signal_policy);
|
||||
-
|
||||
- if (ret == 0 && signal)
|
||||
- vmbus_setevent(channel);
|
||||
-
|
||||
- return ret;
|
||||
+ return hv_ringbuffer_write(channel, bufferlist, 3,
|
||||
+ lock, true);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vmbus_sendpacket_multipagebuffer);
|
||||
|
||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
||||
index a5b4442433c8..fa782e13c8da 100644
|
||||
--- a/drivers/hv/hyperv_vmbus.h
|
||||
+++ b/drivers/hv/hyperv_vmbus.h
|
||||
@@ -527,10 +527,10 @@ int hv_ringbuffer_init(struct hv_ring_buffer_info *ring_info,
|
||||
|
||||
void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info);
|
||||
|
||||
-int hv_ringbuffer_write(struct hv_ring_buffer_info *ring_info,
|
||||
+int hv_ringbuffer_write(struct vmbus_channel *channel,
|
||||
struct kvec *kv_list,
|
||||
- u32 kv_count, bool *signal, bool lock,
|
||||
- enum hv_signal_policy policy);
|
||||
+ u32 kv_count, bool lock,
|
||||
+ bool kick_q);
|
||||
|
||||
int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info,
|
||||
void *buffer, u32 buflen, u32 *buffer_actual_len,
|
||||
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
|
||||
index 5d11d93eedf4..4af71306d0ff 100644
|
||||
--- a/drivers/hv/ring_buffer.c
|
||||
+++ b/drivers/hv/ring_buffer.c
|
||||
@@ -66,14 +66,25 @@ u32 hv_end_read(struct hv_ring_buffer_info *rbi)
|
||||
* once the ring buffer is empty, it will clear the
|
||||
* interrupt_mask and re-check to see if new data has
|
||||
* arrived.
|
||||
+ *
|
||||
+ * KYS: Oct. 30, 2016:
|
||||
+ * It looks like Windows hosts have logic to deal with DOS attacks that
|
||||
+ * can be triggered if it receives interrupts when it is not expecting
|
||||
+ * the interrupt. The host expects interrupts only when the ring
|
||||
+ * transitions from empty to non-empty (or full to non full on the guest
|
||||
+ * to host ring).
|
||||
+ * So, base the signaling decision solely on the ring state until the
|
||||
+ * host logic is fixed.
|
||||
*/
|
||||
|
||||
-static bool hv_need_to_signal(u32 old_write, struct hv_ring_buffer_info *rbi,
|
||||
- enum hv_signal_policy policy)
|
||||
+static void hv_signal_on_write(u32 old_write, struct vmbus_channel *channel,
|
||||
+ bool kick_q)
|
||||
{
|
||||
+ struct hv_ring_buffer_info *rbi = &channel->outbound;
|
||||
+
|
||||
virt_mb();
|
||||
if (READ_ONCE(rbi->ring_buffer->interrupt_mask))
|
||||
- return false;
|
||||
+ return;
|
||||
|
||||
/* check interrupt_mask before read_index */
|
||||
virt_rmb();
|
||||
@@ -82,9 +93,9 @@ static bool hv_need_to_signal(u32 old_write, struct hv_ring_buffer_info *rbi,
|
||||
* ring transitions from being empty to non-empty.
|
||||
*/
|
||||
if (old_write == READ_ONCE(rbi->ring_buffer->read_index))
|
||||
- return true;
|
||||
+ vmbus_setevent(channel);
|
||||
|
||||
- return false;
|
||||
+ return;
|
||||
}
|
||||
|
||||
/* Get the next write location for the specified ring buffer. */
|
||||
@@ -273,9 +284,9 @@ void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info)
|
||||
}
|
||||
|
||||
/* Write to the ring buffer. */
|
||||
-int hv_ringbuffer_write(struct hv_ring_buffer_info *outring_info,
|
||||
- struct kvec *kv_list, u32 kv_count, bool *signal, bool lock,
|
||||
- enum hv_signal_policy policy)
|
||||
+int hv_ringbuffer_write(struct vmbus_channel *channel,
|
||||
+ struct kvec *kv_list, u32 kv_count, bool lock,
|
||||
+ bool kick_q)
|
||||
{
|
||||
int i = 0;
|
||||
u32 bytes_avail_towrite;
|
||||
@@ -285,6 +296,7 @@ int hv_ringbuffer_write(struct hv_ring_buffer_info *outring_info,
|
||||
u32 old_write;
|
||||
u64 prev_indices = 0;
|
||||
unsigned long flags = 0;
|
||||
+ struct hv_ring_buffer_info *outring_info = &channel->outbound;
|
||||
|
||||
for (i = 0; i < kv_count; i++)
|
||||
totalbytes_towrite += kv_list[i].iov_len;
|
||||
@@ -337,7 +349,7 @@ int hv_ringbuffer_write(struct hv_ring_buffer_info *outring_info,
|
||||
if (lock)
|
||||
spin_unlock_irqrestore(&outring_info->ring_lock, flags);
|
||||
|
||||
- *signal = hv_need_to_signal(old_write, outring_info, policy);
|
||||
+ hv_signal_on_write(old_write, channel, kick_q);
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 468e15e29f5f..9a2d657a7fe7 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1447,6 +1447,7 @@ void hv_event_tasklet_enable(struct vmbus_channel *channel);
|
||||
|
||||
void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid);
|
||||
|
||||
+void vmbus_setevent(struct vmbus_channel *channel);
|
||||
/*
|
||||
* Negotiated version with the Host.
|
||||
*/
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,141 @@
|
||||
From 9e0ab3ccac70147f6e0e04cf0872d6f477ec6b68 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Sun, 6 Nov 2016 13:14:18 -0800
|
||||
Subject: [PATCH 10/11] Drivers: hv: vmbus: On the read path cleanup the logic
|
||||
to interrupt the host
|
||||
|
||||
Signal the host when we determine the host is to be signaled -
|
||||
on th read path. The currrent code determines the need to signal in the
|
||||
ringbuffer code and actually issues the signal elsewhere. This can result
|
||||
in the host viewing this interrupt as spurious since the host may also
|
||||
poll the channel. Make the necessary adjustments.
|
||||
|
||||
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/hv/channel.c | 11 ++---------
|
||||
drivers/hv/hyperv_vmbus.h | 4 ++--
|
||||
drivers/hv/ring_buffer.c | 7 ++++---
|
||||
include/linux/hyperv.h | 12 ++++++------
|
||||
4 files changed, 14 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 8a8148f7b842..5fb4c6d9209b 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -879,16 +879,9 @@ __vmbus_recvpacket(struct vmbus_channel *channel, void *buffer,
|
||||
u32 bufferlen, u32 *buffer_actual_len, u64 *requestid,
|
||||
bool raw)
|
||||
{
|
||||
- int ret;
|
||||
- bool signal = false;
|
||||
-
|
||||
- ret = hv_ringbuffer_read(&channel->inbound, buffer, bufferlen,
|
||||
- buffer_actual_len, requestid, &signal, raw);
|
||||
+ return hv_ringbuffer_read(channel, buffer, bufferlen,
|
||||
+ buffer_actual_len, requestid, raw);
|
||||
|
||||
- if (signal)
|
||||
- vmbus_setevent(channel);
|
||||
-
|
||||
- return ret;
|
||||
}
|
||||
|
||||
int vmbus_recvpacket(struct vmbus_channel *channel, void *buffer,
|
||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
||||
index fa782e13c8da..2b13f2a0a71e 100644
|
||||
--- a/drivers/hv/hyperv_vmbus.h
|
||||
+++ b/drivers/hv/hyperv_vmbus.h
|
||||
@@ -532,9 +532,9 @@ int hv_ringbuffer_write(struct vmbus_channel *channel,
|
||||
u32 kv_count, bool lock,
|
||||
bool kick_q);
|
||||
|
||||
-int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info,
|
||||
+int hv_ringbuffer_read(struct vmbus_channel *channel,
|
||||
void *buffer, u32 buflen, u32 *buffer_actual_len,
|
||||
- u64 *requestid, bool *signal, bool raw);
|
||||
+ u64 *requestid, bool raw);
|
||||
|
||||
void hv_ringbuffer_get_debuginfo(struct hv_ring_buffer_info *ring_info,
|
||||
struct hv_ring_buffer_debug_info *debug_info);
|
||||
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
|
||||
index 4af71306d0ff..cd49cb17eb7f 100644
|
||||
--- a/drivers/hv/ring_buffer.c
|
||||
+++ b/drivers/hv/ring_buffer.c
|
||||
@@ -353,9 +353,9 @@ int hv_ringbuffer_write(struct vmbus_channel *channel,
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info,
|
||||
+int hv_ringbuffer_read(struct vmbus_channel *channel,
|
||||
void *buffer, u32 buflen, u32 *buffer_actual_len,
|
||||
- u64 *requestid, bool *signal, bool raw)
|
||||
+ u64 *requestid, bool raw)
|
||||
{
|
||||
u32 bytes_avail_toread;
|
||||
u32 next_read_location = 0;
|
||||
@@ -364,6 +364,7 @@ int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info,
|
||||
u32 offset;
|
||||
u32 packetlen;
|
||||
int ret = 0;
|
||||
+ struct hv_ring_buffer_info *inring_info = &channel->inbound;
|
||||
|
||||
if (buflen <= 0)
|
||||
return -EINVAL;
|
||||
@@ -421,7 +422,7 @@ int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info,
|
||||
/* Update the read index */
|
||||
hv_set_next_read_location(inring_info, next_read_location);
|
||||
|
||||
- *signal = hv_need_to_signal_on_read(inring_info);
|
||||
+ hv_signal_on_read(channel);
|
||||
|
||||
return ret;
|
||||
}
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 9a2d657a7fe7..5343b7406acc 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -1480,10 +1480,11 @@ hv_get_ring_buffer(struct hv_ring_buffer_info *ring_info)
|
||||
* there is room for the producer to send the pending packet.
|
||||
*/
|
||||
|
||||
-static inline bool hv_need_to_signal_on_read(struct hv_ring_buffer_info *rbi)
|
||||
+static inline void hv_signal_on_read(struct vmbus_channel *channel)
|
||||
{
|
||||
u32 cur_write_sz;
|
||||
u32 pending_sz;
|
||||
+ struct hv_ring_buffer_info *rbi = &channel->inbound;
|
||||
|
||||
/*
|
||||
* Issue a full memory barrier before making the signaling decision.
|
||||
@@ -1501,14 +1502,14 @@ static inline bool hv_need_to_signal_on_read(struct hv_ring_buffer_info *rbi)
|
||||
pending_sz = READ_ONCE(rbi->ring_buffer->pending_send_sz);
|
||||
/* If the other end is not blocked on write don't bother. */
|
||||
if (pending_sz == 0)
|
||||
- return false;
|
||||
+ return;
|
||||
|
||||
cur_write_sz = hv_get_bytes_to_write(rbi);
|
||||
|
||||
if (cur_write_sz >= pending_sz)
|
||||
- return true;
|
||||
+ vmbus_setevent(channel);
|
||||
|
||||
- return false;
|
||||
+ return;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1590,8 +1591,7 @@ static inline void commit_rd_index(struct vmbus_channel *channel)
|
||||
virt_rmb();
|
||||
ring_info->ring_buffer->read_index = ring_info->priv_read_index;
|
||||
|
||||
- if (hv_need_to_signal_on_read(ring_info))
|
||||
- vmbus_set_event(channel);
|
||||
+ hv_signal_on_read(channel);
|
||||
}
|
||||
|
||||
struct vmpipe_proto_header {
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,140 @@
|
||||
From c9dc13e8f77c09369dae49f265176999e3f327c8 Mon Sep 17 00:00:00 2001
|
||||
From: Dexuan Cui <decui@microsoft.com>
|
||||
Date: Mon, 16 Jan 2017 15:46:19 +0800
|
||||
Subject: [PATCH 11/11] Drivers: hv: vmbus: finally fix
|
||||
hv_need_to_signal_on_read()
|
||||
|
||||
Commit a389fcfd2cb5 ("Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read()")
|
||||
added the proper mb(), but removed the test "prev_write_sz < pending_sz"
|
||||
when making the signal decision.
|
||||
|
||||
As a result, the guest can signal the host unnecessarily,
|
||||
and then the host can throttle the guest because the host
|
||||
thinks the guest is buggy or malicious; finally the user
|
||||
running stress test can perceive intermittent freeze of
|
||||
the guest.
|
||||
|
||||
This patch brings back the test, and properly handles the
|
||||
in-place consumption APIs used by NetVSC (see get_next_pkt_raw(),
|
||||
put_pkt_raw() and commit_rd_index()).
|
||||
|
||||
Fixes: a389fcfd2cb5 ("Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read()")
|
||||
Signed-off-by: Dexuan Cui <decui@microsoft.com>
|
||||
Reported-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||
Tested-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Cc: Haiyang Zhang <haiyangz@microsoft.com>
|
||||
Cc: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Cc: <stable@vger.kernel.org>
|
||||
|
||||
Origin: Email from Dexuan
|
||||
---
|
||||
drivers/hv/ring_buffer.c | 1 +
|
||||
drivers/net/hyperv/netvsc.c | 2 ++
|
||||
include/linux/hyperv.h | 32 ++++++++++++++++++++++++++++++--
|
||||
3 files changed, 33 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
|
||||
index cd49cb17eb7f..308dbda700eb 100644
|
||||
--- a/drivers/hv/ring_buffer.c
|
||||
+++ b/drivers/hv/ring_buffer.c
|
||||
@@ -383,6 +383,7 @@ int hv_ringbuffer_read(struct vmbus_channel *channel,
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ init_cached_read_index(channel);
|
||||
next_read_location = hv_get_next_read_location(inring_info);
|
||||
next_read_location = hv_copyfrom_ringbuffer(inring_info, &desc,
|
||||
sizeof(desc),
|
||||
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
|
||||
index 720b5fa9e625..9cd74817b09c 100644
|
||||
--- a/drivers/net/hyperv/netvsc.c
|
||||
+++ b/drivers/net/hyperv/netvsc.c
|
||||
@@ -1288,6 +1288,8 @@ void netvsc_channel_cb(void *context)
|
||||
ndev = hv_get_drvdata(device);
|
||||
buffer = get_per_channel_state(channel);
|
||||
|
||||
+ init_cached_read_index(channel);
|
||||
+
|
||||
do {
|
||||
desc = get_next_pkt_raw(channel);
|
||||
if (desc != NULL) {
|
||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
||||
index 5343b7406acc..e34da6846348 100644
|
||||
--- a/include/linux/hyperv.h
|
||||
+++ b/include/linux/hyperv.h
|
||||
@@ -128,6 +128,7 @@ struct hv_ring_buffer_info {
|
||||
u32 ring_data_startoffset;
|
||||
u32 priv_write_index;
|
||||
u32 priv_read_index;
|
||||
+ u32 cached_read_index;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -180,6 +181,19 @@ static inline u32 hv_get_bytes_to_write(struct hv_ring_buffer_info *rbi)
|
||||
return write;
|
||||
}
|
||||
|
||||
+static inline u32 hv_get_cached_bytes_to_write(
|
||||
+ const struct hv_ring_buffer_info *rbi)
|
||||
+{
|
||||
+ u32 read_loc, write_loc, dsize, write;
|
||||
+
|
||||
+ dsize = rbi->ring_datasize;
|
||||
+ read_loc = rbi->cached_read_index;
|
||||
+ write_loc = rbi->ring_buffer->write_index;
|
||||
+
|
||||
+ write = write_loc >= read_loc ? dsize - (write_loc - read_loc) :
|
||||
+ read_loc - write_loc;
|
||||
+ return write;
|
||||
+}
|
||||
/*
|
||||
* VMBUS version is 32 bit entity broken up into
|
||||
* two 16 bit quantities: major_number. minor_number.
|
||||
@@ -1482,7 +1496,7 @@ hv_get_ring_buffer(struct hv_ring_buffer_info *ring_info)
|
||||
|
||||
static inline void hv_signal_on_read(struct vmbus_channel *channel)
|
||||
{
|
||||
- u32 cur_write_sz;
|
||||
+ u32 cur_write_sz, cached_write_sz;
|
||||
u32 pending_sz;
|
||||
struct hv_ring_buffer_info *rbi = &channel->inbound;
|
||||
|
||||
@@ -1506,12 +1520,24 @@ static inline void hv_signal_on_read(struct vmbus_channel *channel)
|
||||
|
||||
cur_write_sz = hv_get_bytes_to_write(rbi);
|
||||
|
||||
- if (cur_write_sz >= pending_sz)
|
||||
+ if (cur_write_sz < pending_sz)
|
||||
+ return;
|
||||
+
|
||||
+ cached_write_sz = hv_get_cached_bytes_to_write(rbi);
|
||||
+ if (cached_write_sz < pending_sz)
|
||||
vmbus_setevent(channel);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
+static inline void
|
||||
+init_cached_read_index(struct vmbus_channel *channel)
|
||||
+{
|
||||
+ struct hv_ring_buffer_info *rbi = &channel->inbound;
|
||||
+
|
||||
+ rbi->cached_read_index = rbi->ring_buffer->read_index;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* An API to support in-place processing of incoming VMBUS packets.
|
||||
*/
|
||||
@@ -1573,6 +1599,8 @@ static inline void put_pkt_raw(struct vmbus_channel *channel,
|
||||
* This call commits the read index and potentially signals the host.
|
||||
* Here is the pattern for using the "in-place" consumption APIs:
|
||||
*
|
||||
+ * init_cached_read_index();
|
||||
+ *
|
||||
* while (get_next_pkt_raw() {
|
||||
* process the packet "in-place";
|
||||
* put_pkt_raw();
|
||||
--
|
||||
2.11.0
|
||||
|
Loading…
Reference in New Issue
Block a user