mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-27 04:28:20 +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>
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Date: Thu, 17 Dec 2015 16:53:43 +0800
|
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:
|
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(-)
|
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
|
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
|
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
|
||||||
+++ b/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)
|
@@ -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;
|
struct virtio_gpu_device *vgdev;
|
||||||
/* this will expand later */
|
/* this will expand later */
|
||||||
diff --git a/drivers/misc/mic/card/mic_virtio.c b/drivers/misc/mic/card/mic_virtio.c
|
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
|
--- a/drivers/misc/mic/card/mic_virtio.c
|
||||||
+++ b/drivers/misc/mic/card/mic_virtio.c
|
+++ b/drivers/misc/mic/card/mic_virtio.c
|
||||||
@@ -311,7 +311,7 @@ unmap:
|
@@ -311,7 +311,7 @@ unmap:
|
||||||
@ -63,7 +63,7 @@ index e486a0c..f6ed57d 100644
|
|||||||
struct mic_vdev *mvdev = to_micvdev(vdev);
|
struct mic_vdev *mvdev = to_micvdev(vdev);
|
||||||
struct mic_device_ctrl __iomem *dc = mvdev->dc;
|
struct mic_device_ctrl __iomem *dc = mvdev->dc;
|
||||||
diff --git a/drivers/remoteproc/remoteproc_virtio.c b/drivers/remoteproc/remoteproc_virtio.c
|
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
|
--- a/drivers/remoteproc/remoteproc_virtio.c
|
||||||
+++ b/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)
|
@@ -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);
|
struct rproc *rproc = vdev_to_rproc(vdev);
|
||||||
int i, ret;
|
int i, ret;
|
||||||
diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
|
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
|
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
|
||||||
+++ b/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,
|
@@ -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;
|
struct virtproc_info *vrp;
|
||||||
void *bufs_va;
|
void *bufs_va;
|
||||||
diff --git a/drivers/s390/virtio/kvm_virtio.c b/drivers/s390/virtio/kvm_virtio.c
|
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
|
--- a/drivers/s390/virtio/kvm_virtio.c
|
||||||
+++ b/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)
|
@@ -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);
|
struct kvm_device *kdev = to_kvmdev(vdev);
|
||||||
int i;
|
int i;
|
||||||
diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
|
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
|
--- a/drivers/s390/virtio/virtio_ccw.c
|
||||||
+++ b/drivers/s390/virtio/virtio_ccw.c
|
+++ b/drivers/s390/virtio/virtio_ccw.c
|
||||||
@@ -635,7 +635,7 @@ out:
|
@@ -635,7 +635,7 @@ out:
|
||||||
@ -115,7 +115,7 @@ index 1b83159..bf2d130 100644
|
|||||||
struct virtio_ccw_device *vcdev = to_vc_device(vdev);
|
struct virtio_ccw_device *vcdev = to_vc_device(vdev);
|
||||||
unsigned long *indicatorp = NULL;
|
unsigned long *indicatorp = NULL;
|
||||||
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
|
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
|
--- a/drivers/virtio/virtio_balloon.c
|
||||||
+++ b/drivers/virtio/virtio_balloon.c
|
+++ b/drivers/virtio/virtio_balloon.c
|
||||||
@@ -394,7 +394,7 @@ static int init_vqs(struct virtio_balloon *vb)
|
@@ -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
|
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
|
--- a/drivers/virtio/virtio_input.c
|
||||||
+++ b/drivers/virtio/virtio_input.c
|
+++ b/drivers/virtio/virtio_input.c
|
||||||
@@ -170,7 +170,7 @@ static int virtinput_init_vqs(struct virtio_input *vi)
|
@@ -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);
|
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
|
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
|
--- a/drivers/virtio/virtio_mmio.c
|
||||||
+++ b/drivers/virtio/virtio_mmio.c
|
+++ b/drivers/virtio/virtio_mmio.c
|
||||||
@@ -482,7 +482,7 @@ error_available:
|
@@ -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);
|
struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
|
||||||
unsigned int irq = platform_get_irq(vm_dev->pdev, 0);
|
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
|
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
|
--- a/drivers/virtio/virtio_pci_common.c
|
||||||
+++ b/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)
|
@@ -296,7 +296,7 @@ void vp_del_vqs(struct virtio_device *vdev)
|
||||||
@ -176,7 +176,7 @@ index 2046a68..f6bed86 100644
|
|||||||
int err;
|
int err;
|
||||||
|
|
||||||
diff --git a/drivers/virtio/virtio_pci_common.h b/drivers/virtio/virtio_pci_common.h
|
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
|
--- a/drivers/virtio/virtio_pci_common.h
|
||||||
+++ b/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);
|
@@ -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:
|
/* Setup the affinity for a virtqueue:
|
||||||
diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c
|
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
|
--- a/drivers/virtio/virtio_pci_modern.c
|
||||||
+++ b/drivers/virtio/virtio_pci_modern.c
|
+++ b/drivers/virtio/virtio_pci_modern.c
|
||||||
@@ -423,7 +423,7 @@ err_new_queue:
|
@@ -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 virtio_pci_device *vp_dev = to_vp_device(vdev);
|
||||||
struct virtqueue *vq;
|
struct virtqueue *vq;
|
||||||
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h
|
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
|
--- a/include/linux/virtio_config.h
|
||||||
+++ b/include/linux/virtio_config.h
|
+++ b/include/linux/virtio_config.h
|
||||||
@@ -70,7 +70,7 @@ struct virtio_config_ops {
|
@@ -70,7 +70,7 @@ struct virtio_config_ops {
|
||||||
@ -215,5 +215,5 @@ index e5ce8ab..6e6cb0c 100644
|
|||||||
u64 (*get_features)(struct virtio_device *vdev);
|
u64 (*get_features)(struct virtio_device *vdev);
|
||||||
int (*finalize_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>
|
From: Julia Lawall <julia.lawall@lip6.fr>
|
||||||
Date: Sat, 21 Nov 2015 18:39:17 +0100
|
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
|
The vmci_transport_notify_ops structures are never modified, so declare
|
||||||
them as const.
|
them as const.
|
||||||
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
4 files changed, 6 insertions(+), 5 deletions(-)
|
4 files changed, 6 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/net/vmw_vsock/vmci_transport.h b/net/vmw_vsock/vmci_transport.h
|
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
|
--- a/net/vmw_vsock/vmci_transport.h
|
||||||
+++ b/net/vmw_vsock/vmci_transport.h
|
+++ b/net/vmw_vsock/vmci_transport.h
|
||||||
@@ -121,7 +121,7 @@ struct vmci_transport {
|
@@ -121,7 +121,7 @@ struct vmci_transport {
|
||||||
@ -32,7 +32,7 @@ index 2ad46f3..1820e74 100644
|
|||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
spinlock_t lock; /* protects sk. */
|
spinlock_t lock; /* protects sk. */
|
||||||
diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
|
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
|
--- a/net/vmw_vsock/vmci_transport_notify.c
|
||||||
+++ b/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)
|
@@ -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_socket_destruct,
|
||||||
vmci_transport_notify_pkt_poll_in,
|
vmci_transport_notify_pkt_poll_in,
|
||||||
diff --git a/net/vmw_vsock/vmci_transport_notify.h b/net/vmw_vsock/vmci_transport_notify.h
|
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
|
--- a/net/vmw_vsock/vmci_transport_notify.h
|
||||||
+++ b/net/vmw_vsock/vmci_transport_notify.h
|
+++ b/net/vmw_vsock/vmci_transport_notify.h
|
||||||
@@ -77,7 +77,8 @@ struct vmci_transport_notify_ops {
|
@@ -77,7 +77,8 @@ struct vmci_transport_notify_ops {
|
||||||
@ -60,7 +60,7 @@ index 7df7932..3c464d3 100644
|
|||||||
|
|
||||||
#endif /* __VMCI_TRANSPORT_NOTIFY_H__ */
|
#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
|
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
|
--- a/net/vmw_vsock/vmci_transport_notify_qstate.c
|
||||||
+++ b/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(
|
@@ -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_socket_destruct,
|
||||||
vmci_transport_notify_pkt_poll_in,
|
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>
|
From: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
|
||||||
Date: Tue, 22 Mar 2016 17:05:52 +0100
|
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
|
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
|
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(-)
|
1 file changed, 85 insertions(+), 73 deletions(-)
|
||||||
|
|
||||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
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
|
--- a/net/vmw_vsock/af_vsock.c
|
||||||
+++ b/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,
|
@@ -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);
|
release_sock(sk);
|
||||||
return err;
|
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>
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Date: Thu, 23 Jun 2016 16:28:58 +0100
|
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
|
There are several places where the listener and pending or accept queue
|
||||||
child sockets are accessed at the same time. Lockdep is unhappy that
|
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(-)
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
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
|
--- a/net/vmw_vsock/af_vsock.c
|
||||||
+++ b/net/vmw_vsock/af_vsock.c
|
+++ b/net/vmw_vsock/af_vsock.c
|
||||||
@@ -61,6 +61,14 @@
|
@@ -61,6 +61,14 @@
|
||||||
@ -59,5 +59,5 @@ index b5f1221..b96ac91 100644
|
|||||||
|
|
||||||
/* If the listener socket has received an error, then we should
|
/* 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>
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Date: Thu, 28 Jul 2016 15:36:30 +0100
|
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
|
struct vsock_transport contains function pointers called by AF_VSOCK
|
||||||
core code. The transport may want its own transport-specific function
|
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(+)
|
2 files changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h
|
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
|
--- a/include/net/af_vsock.h
|
||||||
+++ b/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)
|
@@ -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);
|
void vsock_release_pending(struct sock *pending);
|
||||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
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
|
--- a/net/vmw_vsock/af_vsock.c
|
||||||
+++ b/net/vmw_vsock/af_vsock.c
|
+++ b/net/vmw_vsock/af_vsock.c
|
||||||
@@ -1995,6 +1995,15 @@ void vsock_core_exit(void)
|
@@ -1995,6 +1995,15 @@ void vsock_core_exit(void)
|
||||||
@ -55,5 +55,5 @@ index b96ac91..e34d96f 100644
|
|||||||
MODULE_DESCRIPTION("VMware Virtual Socket Family");
|
MODULE_DESCRIPTION("VMware Virtual Socket Family");
|
||||||
MODULE_VERSION("1.0.1.0-k");
|
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>
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Date: Thu, 28 Jul 2016 15:36:31 +0100
|
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
|
The virtio transport will implement graceful shutdown and the related
|
||||||
SO_LINGER socket option. This requires orphaning the sock but keeping
|
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(-)
|
3 files changed, 13 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h
|
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
|
--- a/include/net/af_vsock.h
|
||||||
+++ b/include/net/af_vsock.h
|
+++ b/include/net/af_vsock.h
|
||||||
@@ -180,6 +180,7 @@ void vsock_remove_connected(struct vsock_sock *vsk);
|
@@ -180,6 +180,7 @@ void vsock_remove_connected(struct vsock_sock *vsk);
|
||||||
@ -32,7 +32,7 @@ index 23f5525..3af0b22 100644
|
|||||||
|
|
||||||
#endif /* __AF_VSOCK_H__ */
|
#endif /* __AF_VSOCK_H__ */
|
||||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
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
|
--- a/net/vmw_vsock/af_vsock.c
|
||||||
+++ b/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)
|
@@ -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);
|
lock_sock(sk);
|
||||||
diff --git a/net/vmw_vsock/vmci_transport.c b/net/vmw_vsock/vmci_transport.c
|
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
|
--- a/net/vmw_vsock/vmci_transport.c
|
||||||
+++ b/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)
|
@@ -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_datagram_destroy_handle(vmci_trans(vsk)->dg_handle);
|
||||||
vmci_trans(vsk)->dg_handle = VMCI_INVALID_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>
|
From: Asias He <asias@redhat.com>
|
||||||
Date: Thu, 28 Jul 2016 15:36:32 +0100
|
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
|
This module contains the common code and header files for the following
|
||||||
virtio_transporto and vhost_vsock kernel modules.
|
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
|
create mode 100644 net/vmw_vsock/virtio_transport_common.c
|
||||||
|
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||||
index ab65bbe..b93ba8b 100644
|
index ab65bbecb159..b93ba8b21be7 100644
|
||||||
--- a/MAINTAINERS
|
--- a/MAINTAINERS
|
||||||
+++ b/MAINTAINERS
|
+++ b/MAINTAINERS
|
||||||
@@ -11382,6 +11382,16 @@ S: Maintained
|
@@ -11382,6 +11382,16 @@ S: Maintained
|
||||||
@ -49,7 +49,7 @@ index ab65bbe..b93ba8b 100644
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h
|
diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..9638bfe
|
index 000000000000..9638bfeb0d1f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/linux/virtio_vsock.h
|
+++ b/include/linux/virtio_vsock.h
|
||||||
@@ -0,0 +1,154 @@
|
@@ -0,0 +1,154 @@
|
||||||
@ -208,7 +208,7 @@ index 0000000..9638bfe
|
|||||||
+
|
+
|
||||||
+#endif /* _LINUX_VIRTIO_VSOCK_H */
|
+#endif /* _LINUX_VIRTIO_VSOCK_H */
|
||||||
diff --git a/include/net/af_vsock.h b/include/net/af_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
|
--- a/include/net/af_vsock.h
|
||||||
+++ b/include/net/af_vsock.h
|
+++ b/include/net/af_vsock.h
|
||||||
@@ -63,6 +63,8 @@ struct vsock_sock {
|
@@ -63,6 +63,8 @@ struct vsock_sock {
|
||||||
@ -222,7 +222,7 @@ index 3af0b22..f275896 100644
|
|||||||
bool ignore_connecting_rst;
|
bool ignore_connecting_rst;
|
||||||
diff --git a/include/trace/events/vsock_virtio_transport_common.h b/include/trace/events/vsock_virtio_transport_common.h
|
diff --git a/include/trace/events/vsock_virtio_transport_common.h b/include/trace/events/vsock_virtio_transport_common.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..b7f1d62
|
index 000000000000..b7f1d6278280
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/trace/events/vsock_virtio_transport_common.h
|
+++ b/include/trace/events/vsock_virtio_transport_common.h
|
||||||
@@ -0,0 +1,144 @@
|
@@ -0,0 +1,144 @@
|
||||||
@ -371,7 +371,7 @@ index 0000000..b7f1d62
|
|||||||
+/* This part must be outside protection */
|
+/* This part must be outside protection */
|
||||||
+#include <trace/define_trace.h>
|
+#include <trace/define_trace.h>
|
||||||
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
|
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
|
--- a/include/uapi/linux/Kbuild
|
||||||
+++ b/include/uapi/linux/Kbuild
|
+++ b/include/uapi/linux/Kbuild
|
||||||
@@ -447,6 +447,7 @@ header-y += virtio_ring.h
|
@@ -447,6 +447,7 @@ header-y += virtio_ring.h
|
||||||
@ -383,7 +383,7 @@ index ebd10e6..6c51a4d 100644
|
|||||||
header-y += vt.h
|
header-y += vt.h
|
||||||
header-y += wait.h
|
header-y += wait.h
|
||||||
diff --git a/include/uapi/linux/virtio_ids.h b/include/uapi/linux/virtio_ids.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
|
--- a/include/uapi/linux/virtio_ids.h
|
||||||
+++ b/include/uapi/linux/virtio_ids.h
|
+++ b/include/uapi/linux/virtio_ids.h
|
||||||
@@ -41,5 +41,6 @@
|
@@ -41,5 +41,6 @@
|
||||||
@ -395,7 +395,7 @@ index 77925f5..3228d58 100644
|
|||||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||||
diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h
|
diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..6b011c1
|
index 000000000000..6b011c19b50f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/uapi/linux/virtio_vsock.h
|
+++ b/include/uapi/linux/virtio_vsock.h
|
||||||
@@ -0,0 +1,94 @@
|
@@ -0,0 +1,94 @@
|
||||||
@ -495,7 +495,7 @@ index 0000000..6b011c1
|
|||||||
+#endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
|
+#endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
|
||||||
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
|
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..a53b3a1
|
index 000000000000..a53b3a16b4f1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/vmw_vsock/virtio_transport_common.c
|
+++ b/net/vmw_vsock/virtio_transport_common.c
|
||||||
@@ -0,0 +1,992 @@
|
@@ -0,0 +1,992 @@
|
||||||
@ -1492,5 +1492,5 @@ index 0000000..a53b3a1
|
|||||||
+MODULE_AUTHOR("Asias He");
|
+MODULE_AUTHOR("Asias He");
|
||||||
+MODULE_DESCRIPTION("common code for virtio vsock");
|
+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>
|
From: Asias He <asias@redhat.com>
|
||||||
Date: Thu, 28 Jul 2016 15:36:33 +0100
|
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
|
VM sockets virtio transport implementation. This driver runs in the
|
||||||
guest.
|
guest.
|
||||||
@ -17,7 +17,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|||||||
create mode 100644 net/vmw_vsock/virtio_transport.c
|
create mode 100644 net/vmw_vsock/virtio_transport.c
|
||||||
|
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||||
index b93ba8b..82d1123 100644
|
index b93ba8b21be7..82d11235cacb 100644
|
||||||
--- a/MAINTAINERS
|
--- a/MAINTAINERS
|
||||||
+++ b/MAINTAINERS
|
+++ b/MAINTAINERS
|
||||||
@@ -11391,6 +11391,7 @@ S: Maintained
|
@@ -11391,6 +11391,7 @@ S: Maintained
|
||||||
@ -30,7 +30,7 @@ index b93ba8b..82d1123 100644
|
|||||||
M: Stephen Chandler Paul <thatslyude@gmail.com>
|
M: Stephen Chandler Paul <thatslyude@gmail.com>
|
||||||
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
|
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..699dfab
|
index 000000000000..699dfabdbccd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/vmw_vsock/virtio_transport.c
|
+++ b/net/vmw_vsock/virtio_transport.c
|
||||||
@@ -0,0 +1,624 @@
|
@@ -0,0 +1,624 @@
|
||||||
@ -659,5 +659,5 @@ index 0000000..699dfab
|
|||||||
+MODULE_DESCRIPTION("virtio transport for vsock");
|
+MODULE_DESCRIPTION("virtio transport for vsock");
|
||||||
+MODULE_DEVICE_TABLE(virtio, id_table);
|
+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>
|
From: Asias He <asias@redhat.com>
|
||||||
Date: Thu, 28 Jul 2016 15:36:34 +0100
|
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
|
VM sockets vhost transport implementation. This driver runs on the
|
||||||
host.
|
host.
|
||||||
@ -18,7 +18,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|||||||
create mode 100644 drivers/vhost/vsock.c
|
create mode 100644 drivers/vhost/vsock.c
|
||||||
|
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||||
index 82d1123..12d49f5 100644
|
index 82d11235cacb..12d49f58c4e0 100644
|
||||||
--- a/MAINTAINERS
|
--- a/MAINTAINERS
|
||||||
+++ b/MAINTAINERS
|
+++ b/MAINTAINERS
|
||||||
@@ -11392,6 +11392,8 @@ F: include/linux/virtio_vsock.h
|
@@ -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>
|
M: Stephen Chandler Paul <thatslyude@gmail.com>
|
||||||
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..028ca16
|
index 000000000000..028ca16c2d36
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/vhost/vsock.c
|
+++ b/drivers/vhost/vsock.c
|
||||||
@@ -0,0 +1,722 @@
|
@@ -0,0 +1,722 @@
|
||||||
@ -759,7 +759,7 @@ index 0000000..028ca16
|
|||||||
+MODULE_AUTHOR("Asias He");
|
+MODULE_AUTHOR("Asias He");
|
||||||
+MODULE_DESCRIPTION("vhost transport for vsock ");
|
+MODULE_DESCRIPTION("vhost transport for vsock ");
|
||||||
diff --git a/include/uapi/linux/vhost.h b/include/uapi/linux/vhost.h
|
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
|
--- a/include/uapi/linux/vhost.h
|
||||||
+++ b/include/uapi/linux/vhost.h
|
+++ b/include/uapi/linux/vhost.h
|
||||||
@@ -169,4 +169,9 @@ struct vhost_scsi_target {
|
@@ -169,4 +169,9 @@ struct vhost_scsi_target {
|
||||||
@ -773,5 +773,5 @@ index ab373191..b306476 100644
|
|||||||
+
|
+
|
||||||
#endif
|
#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>
|
From: Asias He <asias@redhat.com>
|
||||||
Date: Thu, 28 Jul 2016 15:36:35 +0100
|
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.
|
Enable virtio-vsock and vhost-vsock.
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|||||||
4 files changed, 44 insertions(+)
|
4 files changed, 44 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
|
diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
|
||||||
index 533eaf0..2b5f588 100644
|
index 533eaf04f12f..2b5f588f5b1e 100644
|
||||||
--- a/drivers/vhost/Kconfig
|
--- a/drivers/vhost/Kconfig
|
||||||
+++ b/drivers/vhost/Kconfig
|
+++ b/drivers/vhost/Kconfig
|
||||||
@@ -21,6 +21,20 @@ config VHOST_SCSI
|
@@ -21,6 +21,20 @@ config VHOST_SCSI
|
||||||
@ -42,7 +42,7 @@ index 533eaf0..2b5f588 100644
|
|||||||
tristate
|
tristate
|
||||||
---help---
|
---help---
|
||||||
diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile
|
diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile
|
||||||
index e0441c3..6b012b9 100644
|
index e0441c34db1c..6b012b986b57 100644
|
||||||
--- a/drivers/vhost/Makefile
|
--- a/drivers/vhost/Makefile
|
||||||
+++ b/drivers/vhost/Makefile
|
+++ b/drivers/vhost/Makefile
|
||||||
@@ -4,5 +4,9 @@ vhost_net-y := net.o
|
@@ -4,5 +4,9 @@ vhost_net-y := net.o
|
||||||
@ -56,7 +56,7 @@ index e0441c3..6b012b9 100644
|
|||||||
+
|
+
|
||||||
obj-$(CONFIG_VHOST) += vhost.o
|
obj-$(CONFIG_VHOST) += vhost.o
|
||||||
diff --git a/net/vmw_vsock/Kconfig b/net/vmw_vsock/Kconfig
|
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
|
--- a/net/vmw_vsock/Kconfig
|
||||||
+++ b/net/vmw_vsock/Kconfig
|
+++ b/net/vmw_vsock/Kconfig
|
||||||
@@ -26,3 +26,23 @@ config VMWARE_VMCI_VSOCKETS
|
@@ -26,3 +26,23 @@ config VMWARE_VMCI_VSOCKETS
|
||||||
@ -84,7 +84,7 @@ index 14810ab..8831e7c 100644
|
|||||||
+ the virtio_vsock. The module will be called
|
+ the virtio_vsock. The module will be called
|
||||||
+ vmw_vsock_virtio_transport_common.
|
+ vmw_vsock_virtio_transport_common.
|
||||||
diff --git a/net/vmw_vsock/Makefile b/net/vmw_vsock/Makefile
|
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
|
--- a/net/vmw_vsock/Makefile
|
||||||
+++ b/net/vmw_vsock/Makefile
|
+++ b/net/vmw_vsock/Makefile
|
||||||
@@ -1,7 +1,13 @@
|
@@ -1,7 +1,13 @@
|
||||||
@ -102,5 +102,5 @@ index 2ce52d7..bc27c70 100644
|
|||||||
+
|
+
|
||||||
+vmw_vsock_virtio_transport_common-y += virtio_transport_common.o
|
+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>
|
From: Wei Yongjun <weiyj.lk@gmail.com>
|
||||||
Date: Tue, 2 Aug 2016 13:50:42 +0000
|
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.
|
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(-)
|
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
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
|
--- a/drivers/vhost/vsock.c
|
||||||
+++ b/drivers/vhost/vsock.c
|
+++ b/drivers/vhost/vsock.c
|
||||||
@@ -434,10 +434,7 @@ err:
|
@@ -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)
|
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>
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Date: Thu, 4 Aug 2016 14:52:53 +0100
|
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
|
Stash the packet length in a local variable before handing over
|
||||||
ownership of the packet to virtio_transport_recv_pkt() or
|
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(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
|
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
|
--- a/drivers/vhost/vsock.c
|
||||||
+++ b/drivers/vhost/vsock.c
|
+++ b/drivers/vhost/vsock.c
|
||||||
@@ -307,6 +307,8 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
|
@@ -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>
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Date: Fri, 5 Aug 2016 13:52:09 +0100
|
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: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
Signed-off-by: Michael S. Tsirkin <mst@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(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h
|
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
|
--- a/include/uapi/linux/virtio_vsock.h
|
||||||
+++ b/include/uapi/linux/virtio_vsock.h
|
+++ b/include/uapi/linux/virtio_vsock.h
|
||||||
@@ -32,7 +32,7 @@
|
@@ -32,7 +32,7 @@
|
||||||
@ -24,5 +24,5 @@ index 6b011c1..1d57ed3 100644
|
|||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/virtio_ids.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>
|
From: Gerard Garcia <ggarcia@deic.uab.cat>
|
||||||
Date: Wed, 10 Aug 2016 17:24:34 +0200
|
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
|
Remove unnecessary use of enable/disable callback notifications
|
||||||
and the incorrect more space available check.
|
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(-)
|
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
|
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
|
--- a/net/vmw_vsock/virtio_transport.c
|
||||||
+++ b/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)
|
@@ -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>
|
From: Ian Campbell <ian.campbell@docker.com>
|
||||||
Date: Mon, 4 Apr 2016 14:50:10 +0100
|
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.
|
AF_VSOCK.
|
||||||
|
|
||||||
The VSOCK addressing schema does not really lend itself to simply creating an
|
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(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
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
|
--- a/net/vmw_vsock/af_vsock.c
|
||||||
+++ b/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 = {
|
@@ -1852,6 +1852,9 @@ static const struct proto_ops vsock_stream_ops = {
|
||||||
@ -27,5 +27,5 @@ index 17dbbe6..1bb1b01 100644
|
|||||||
return -EINVAL;
|
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>
|
From: Jake Oshins <jakeo@microsoft.com>
|
||||||
Date: Mon, 14 Dec 2015 16:01:41 -0800
|
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
|
Express pass-through
|
||||||
|
|
||||||
This defines the channel type for PCI front-ends in Hyper-V VMs.
|
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(+)
|
2 files changed, 14 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -359,6 +359,7 @@ enum {
|
@@ -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
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/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,
|
@@ -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>
|
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||||
Date: Mon, 14 Dec 2015 16:01:43 -0800
|
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.
|
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(-)
|
5 files changed, 40 insertions(+), 68 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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
|
@@ -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;
|
perf_chn = true;
|
||||||
break;
|
break;
|
||||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
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
|
--- a/drivers/hv/vmbus_drv.c
|
||||||
+++ b/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)
|
@@ -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);
|
ret = drv->probe(dev, dev_id);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/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,
|
@@ -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
|
* Common header for Hyper-V ICs
|
||||||
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
|
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
|
--- a/include/linux/mod_devicetable.h
|
||||||
+++ b/include/linux/mod_devicetable.h
|
+++ b/include/linux/mod_devicetable.h
|
||||||
@@ -404,7 +404,7 @@ struct virtio_device_id {
|
@@ -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
|
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
|
--- a/scripts/mod/file2alias.c
|
||||||
+++ b/scripts/mod/file2alias.c
|
+++ b/scripts/mod/file2alias.c
|
||||||
@@ -917,7 +917,7 @@ static int do_vmbus_entry(const char *filename, void *symval,
|
@@ -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:");
|
strcpy(alias, "vmbus:");
|
||||||
strcat(alias, guid_name);
|
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>
|
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||||
Date: Mon, 14 Dec 2015 16:01:44 -0800
|
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
|
GUIDs
|
||||||
|
|
||||||
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(-)
|
2 files changed, 3 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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
|
@@ -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;
|
break;
|
||||||
}
|
}
|
||||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
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
|
--- a/drivers/hv/vmbus_drv.c
|
||||||
+++ b/drivers/hv/vmbus_drv.c
|
+++ b/drivers/hv/vmbus_drv.c
|
||||||
@@ -535,7 +535,7 @@ static const uuid_le null_guid;
|
@@ -535,7 +535,7 @@ static const uuid_le null_guid;
|
||||||
@ -51,5 +51,5 @@ index 6ce2bf8..7973aa5 100644
|
|||||||
|
|
||||||
return NULL;
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Mon, 14 Dec 2015 16:01:48 -0800
|
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()
|
vmbus_close_internal()
|
||||||
|
|
||||||
This fixes an incorrect assumption of channel state in the function.
|
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(+)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
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
|
--- a/drivers/hv/channel.c
|
||||||
+++ b/drivers/hv/channel.c
|
+++ b/drivers/hv/channel.c
|
||||||
@@ -512,6 +512,18 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
@@ -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;
|
channel->sc_creation_callback = NULL;
|
||||||
/* Stop callback and cancel the timer asap */
|
/* 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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Mon, 14 Dec 2015 16:01:50 -0800
|
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()
|
vmbus_process_offer()
|
||||||
|
|
||||||
We want to simplify vmbus_onoffer_rescind() by not invoking
|
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(-)
|
1 file changed, 15 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -178,19 +178,22 @@ static void percpu_channel_deq(void *arg)
|
@@ -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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Mon, 14 Dec 2015 16:01:51 -0800
|
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
|
vmbus_connection.channel_lock to mutex
|
||||||
|
|
||||||
spinlock is unnecessary here.
|
spinlock is unnecessary here.
|
||||||
@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|||||||
3 files changed, 10 insertions(+), 11 deletions(-)
|
3 files changed, 10 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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)
|
@@ -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()) {
|
if (newchannel->target_cpu != get_cpu()) {
|
||||||
put_cpu();
|
put_cpu();
|
||||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
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
|
--- a/drivers/hv/connection.c
|
||||||
+++ b/drivers/hv/connection.c
|
+++ b/drivers/hv/connection.c
|
||||||
@@ -146,7 +146,7 @@ int vmbus_connect(void)
|
@@ -146,7 +146,7 @@ int vmbus_connect(void)
|
||||||
@ -99,7 +99,7 @@ index 4fc2e88..521f48e 100644
|
|||||||
return found_channel;
|
return found_channel;
|
||||||
}
|
}
|
||||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
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
|
--- a/drivers/hv/hyperv_vmbus.h
|
||||||
+++ b/drivers/hv/hyperv_vmbus.h
|
+++ b/drivers/hv/hyperv_vmbus.h
|
||||||
@@ -683,7 +683,7 @@ struct vmbus_connection {
|
@@ -683,7 +683,7 @@ struct vmbus_connection {
|
||||||
@ -112,5 +112,5 @@ index 12156db..50b1de7 100644
|
|||||||
struct workqueue_struct *work_queue;
|
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>
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
Date: Mon, 14 Dec 2015 19:02:00 -0800
|
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()/vmbus_recvpacket_raw()
|
||||||
|
|
||||||
vmbus_recvpacket() and vmbus_recvpacket_raw() are almost identical but
|
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(-)
|
1 file changed, 22 insertions(+), 43 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
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
|
--- a/drivers/hv/channel.c
|
||||||
+++ b/drivers/hv/channel.c
|
+++ b/drivers/hv/channel.c
|
||||||
@@ -922,8 +922,10 @@ EXPORT_SYMBOL_GPL(vmbus_sendpacket_multipagebuffer);
|
@@ -922,8 +922,10 @@ EXPORT_SYMBOL_GPL(vmbus_sendpacket_multipagebuffer);
|
||||||
@ -122,5 +122,5 @@ index 2889d97..dd6de7f 100644
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(vmbus_recvpacket_raw);
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Mon, 21 Dec 2015 12:21:22 -0800
|
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
|
hyperv-keyboard
|
||||||
|
|
||||||
With the recent change af3ff643ea91ba64dd8d0b1cbed54d44512f96cd
|
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(-)
|
2 files changed, 8 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/input/serio/hyperv-keyboard.c b/drivers/input/serio/hyperv-keyboard.c
|
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
|
--- a/drivers/input/serio/hyperv-keyboard.c
|
||||||
+++ b/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)
|
@@ -412,16 +412,6 @@ static int hv_kbd_remove(struct hv_device *hv_dev)
|
||||||
@ -49,7 +49,7 @@ index e74e5d6..c948866 100644
|
|||||||
/* Keyboard guid */
|
/* Keyboard guid */
|
||||||
{ HV_KBD_GUID, },
|
{ HV_KBD_GUID, },
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/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,
|
@@ -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 \
|
#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>
|
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||||
Date: Tue, 15 Dec 2015 16:27:27 -0800
|
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
|
performance critical
|
||||||
|
|
||||||
For performance critical devices, we distribute the incoming
|
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(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -362,6 +362,7 @@ err_free_chan:
|
@@ -362,6 +362,7 @@ err_free_chan:
|
||||||
@ -38,5 +38,5 @@ index 306c7df..763d0c1 100644
|
|||||||
{ HV_NIC_GUID, },
|
{ HV_NIC_GUID, },
|
||||||
/* NetworkDirect Guest RDMA */
|
/* 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>
|
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||||
Date: Fri, 25 Dec 2015 20:00:30 -0800
|
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
|
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
|
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(-)
|
4 files changed, 186 insertions(+), 43 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/ABI/stable/sysfs-bus-vmbus b/Documentation/ABI/stable/sysfs-bus-vmbus
|
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
|
--- a/Documentation/ABI/stable/sysfs-bus-vmbus
|
||||||
+++ b/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
|
@@ -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
|
+Description: The 16 bit vendor ID of the device
|
||||||
+Users: tools/hv/lsvmbus and user level RDMA libraries
|
+Users: tools/hv/lsvmbus and user level RDMA libraries
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -33,8 +33,122 @@
|
@@ -33,8 +33,122 @@
|
||||||
@ -259,7 +259,7 @@ index 763d0c1..d6c6114 100644
|
|||||||
(vmbus_proto_version == VERSION_WIN7) || (!perf_chn)) {
|
(vmbus_proto_version == VERSION_WIN7) || (!perf_chn)) {
|
||||||
/*
|
/*
|
||||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
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
|
--- a/drivers/hv/vmbus_drv.c
|
||||||
+++ b/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,
|
@@ -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;
|
return child_device_obj;
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -635,6 +635,32 @@ enum hv_signal_policy {
|
@@ -635,6 +635,32 @@ enum hv_signal_policy {
|
||||||
@ -351,5 +351,5 @@ index 9e2de6a..51c98fd 100644
|
|||||||
struct device device;
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:37 -0800
|
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
|
channel's pending send size
|
||||||
|
|
||||||
This will be used by the coming net/hvsock driver.
|
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(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -818,6 +818,12 @@ static inline void *get_per_channel_state(struct vmbus_channel *c)
|
@@ -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);
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:38 -0800
|
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)
|
Hyper-V socket (hvsock)
|
||||||
|
|
||||||
A helper function is also added.
|
A helper function is also added.
|
||||||
@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -237,6 +237,7 @@ struct vmbus_channel_offer {
|
@@ -237,6 +237,7 @@ struct vmbus_channel_offer {
|
||||||
@ -40,5 +40,5 @@ index 934542a..a4f105d 100644
|
|||||||
enum hv_signal_policy policy)
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:39 -0800
|
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
|
unnecessary signaling
|
||||||
|
|
||||||
When the hvsock channel's outbound ringbuffer is full (i.e.,
|
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(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
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
|
--- a/drivers/hv/channel.c
|
||||||
+++ b/drivers/hv/channel.c
|
+++ b/drivers/hv/channel.c
|
||||||
@@ -659,6 +659,9 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
@@ -659,6 +659,9 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
||||||
@ -41,5 +41,5 @@ index dd6de7f..128dcf2 100644
|
|||||||
|
|
||||||
return ret;
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:40 -0800
|
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
|
hvsock
|
||||||
|
|
||||||
A function to send the type of message is also added.
|
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(+)
|
3 files changed, 32 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
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
|
--- a/drivers/hv/channel.c
|
||||||
+++ b/drivers/hv/channel.c
|
+++ b/drivers/hv/channel.c
|
||||||
@@ -219,6 +219,21 @@ error0:
|
@@ -219,6 +219,21 @@ error0:
|
||||||
@ -46,7 +46,7 @@ index 128dcf2..415f6c7 100644
|
|||||||
* create_gpadl_header - Creates a gpadl for the specified buffer
|
* create_gpadl_header - Creates a gpadl for the specified buffer
|
||||||
*/
|
*/
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -958,6 +958,10 @@ struct vmbus_channel_message_table_entry
|
@@ -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
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -394,6 +394,10 @@ enum vmbus_channel_message_type {
|
@@ -394,6 +394,10 @@ enum vmbus_channel_message_type {
|
||||||
@ -97,5 +97,5 @@ index a4f105d..191bc5d 100644
|
|||||||
+ const uuid_le *shv_host_servie_id);
|
+ const uuid_le *shv_host_servie_id);
|
||||||
#endif /* _HYPERV_H */
|
#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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:41 -0800
|
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
|
hv_driver
|
||||||
|
|
||||||
Only the coming hv_sock driver has a "true" value for this flag.
|
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(+)
|
2 files changed, 18 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
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
|
--- a/drivers/hv/vmbus_drv.c
|
||||||
+++ b/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)
|
@@ -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;
|
return 1;
|
||||||
|
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -992,6 +992,20 @@ extern void vmbus_ontimer(unsigned long data);
|
@@ -992,6 +992,20 @@ extern void vmbus_ontimer(unsigned long data);
|
||||||
@ -60,5 +60,5 @@ index 191bc5d..05966e2 100644
|
|||||||
uuid_le dev_type;
|
uuid_le dev_type;
|
||||||
const struct hv_vmbus_device_id *id_table;
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:42 -0800
|
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.
|
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(+)
|
2 files changed, 20 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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)
|
@@ -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);
|
+EXPORT_SYMBOL_GPL(vmbus_set_chn_rescind_callback);
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -768,6 +768,12 @@ struct vmbus_channel {
|
@@ -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.
|
* Retrieve the (sub) channel on which to send an outgoing request.
|
||||||
* When a primary channel has multiple sub-channels, we choose a
|
* 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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:43 -0800
|
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()
|
vmbus_hvsock_device_unregister()
|
||||||
|
|
||||||
The hvsock driver needs this API to release all the resources related
|
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(-)
|
3 files changed, 32 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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)
|
@@ -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 -
|
* vmbus_onoffers_delivered -
|
||||||
* This is invoked when all offers have been delivered.
|
* This is invoked when all offers have been delivered.
|
||||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
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
|
--- a/drivers/hv/connection.c
|
||||||
+++ b/drivers/hv/connection.c
|
+++ b/drivers/hv/connection.c
|
||||||
@@ -285,7 +285,8 @@ struct vmbus_channel *relid2channel(u32 relid)
|
@@ -285,7 +285,8 @@ struct vmbus_channel *relid2channel(u32 relid)
|
||||||
@ -136,7 +136,7 @@ index 521f48e..09c08b5 100644
|
|||||||
return found_channel;
|
return found_channel;
|
||||||
}
|
}
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -1071,6 +1071,8 @@ int __must_check __vmbus_driver_register(struct hv_driver *hv_driver,
|
@@ -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 min, resource_size_t max,
|
||||||
resource_size_t size, resource_size_t align,
|
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>
|
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||||
Date: Wed, 27 Jan 2016 22:29:45 -0800
|
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
|
access is serialized
|
||||||
|
|
||||||
On the channel send side, many of the VMBUS
|
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(-)
|
5 files changed, 37 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
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
|
--- a/drivers/hv/channel.c
|
||||||
+++ b/drivers/hv/channel.c
|
+++ b/drivers/hv/channel.c
|
||||||
@@ -639,6 +639,7 @@ int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer,
|
@@ -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)
|
if (ret == 0 && signal)
|
||||||
vmbus_setevent(channel);
|
vmbus_setevent(channel);
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -259,6 +259,7 @@ static struct vmbus_channel *alloc_channel(void)
|
@@ -259,6 +259,7 @@ static struct vmbus_channel *alloc_channel(void)
|
||||||
@ -111,7 +111,7 @@ index cf311be..b40f429 100644
|
|||||||
spin_lock_init(&channel->lock);
|
spin_lock_init(&channel->lock);
|
||||||
|
|
||||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
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
|
--- a/drivers/hv/hyperv_vmbus.h
|
||||||
+++ b/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);
|
@@ -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,
|
int hv_ringbuffer_peek(struct hv_ring_buffer_info *ring_info, void *buffer,
|
||||||
u32 buflen);
|
u32 buflen);
|
||||||
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
|
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
|
--- a/drivers/hv/ring_buffer.c
|
||||||
+++ b/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)
|
@@ -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);
|
*signal = hv_need_to_signal(old_write, outring_info);
|
||||||
return 0;
|
return 0;
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -813,8 +813,24 @@ struct vmbus_channel {
|
@@ -813,8 +813,24 @@ struct vmbus_channel {
|
||||||
@ -204,5 +204,5 @@ index 993318a..6c9695e 100644
|
|||||||
{
|
{
|
||||||
return !!(c->offermsg.offer.chn_flags &
|
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>
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
Date: Fri, 26 Feb 2016 15:13:16 -0800
|
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
|
crash
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
Content-Type: text/plain; charset=UTF-8
|
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(-)
|
4 files changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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)
|
@@ -641,7 +641,7 @@ static void vmbus_unload_response(struct vmbus_channel_message_header *hdr)
|
||||||
@ -48,7 +48,7 @@ index b40f429..f70e352 100644
|
|||||||
else
|
else
|
||||||
vmbus_wait_for_unload();
|
vmbus_wait_for_unload();
|
||||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
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
|
--- a/drivers/hv/connection.c
|
||||||
+++ b/drivers/hv/connection.c
|
+++ b/drivers/hv/connection.c
|
||||||
@@ -233,7 +233,7 @@ void vmbus_disconnect(void)
|
@@ -233,7 +233,7 @@ void vmbus_disconnect(void)
|
||||||
@ -61,7 +61,7 @@ index 09c08b5..78b8be8 100644
|
|||||||
if (vmbus_connection.work_queue) {
|
if (vmbus_connection.work_queue) {
|
||||||
drain_workqueue(vmbus_connection.work_queue);
|
drain_workqueue(vmbus_connection.work_queue);
|
||||||
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
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
|
--- a/drivers/hv/hyperv_vmbus.h
|
||||||
+++ b/drivers/hv/hyperv_vmbus.h
|
+++ b/drivers/hv/hyperv_vmbus.h
|
||||||
@@ -756,7 +756,7 @@ void hv_vss_onchannelcallback(void *);
|
@@ -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,
|
static inline void hv_poll_channel(struct vmbus_channel *channel,
|
||||||
void (*cb)(void *))
|
void (*cb)(void *))
|
||||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
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
|
--- a/drivers/hv/vmbus_drv.c
|
||||||
+++ b/drivers/hv/vmbus_drv.c
|
+++ b/drivers/hv/vmbus_drv.c
|
||||||
@@ -1276,7 +1276,7 @@ static void hv_kexec_handler(void)
|
@@ -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,
|
* In crash handler we can't schedule synic cleanup for all CPUs,
|
||||||
* doing the cleanup for current CPU only. This should be sufficient
|
* 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>
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
Date: Fri, 26 Feb 2016 15:13:18 -0800
|
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()
|
optimizations in vmbus_wait_for_unload()
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
Content-Type: text/plain; charset=UTF-8
|
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(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -605,7 +605,7 @@ static void vmbus_wait_for_unload(void)
|
@@ -605,7 +605,7 @@ static void vmbus_wait_for_unload(void)
|
||||||
@ -35,5 +35,5 @@ index f70e352..c892db5 100644
|
|||||||
continue;
|
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>
|
From: Tom Herbert <tom@herbertland.com>
|
||||||
Date: Mon, 7 Mar 2016 14:11:06 -0800
|
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.
|
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
|
create mode 100644 net/kcm/kcmsock.c
|
||||||
|
|
||||||
diff --git a/include/linux/socket.h b/include/linux/socket.h
|
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
|
--- a/include/linux/socket.h
|
||||||
+++ b/include/linux/socket.h
|
+++ b/include/linux/socket.h
|
||||||
@@ -200,7 +200,9 @@ struct ucred {
|
@@ -200,7 +200,9 @@ struct ucred {
|
||||||
@ -64,7 +64,7 @@ index 5bf59c8..4e1ea53 100644
|
|||||||
#define IPX_TYPE 1
|
#define IPX_TYPE 1
|
||||||
diff --git a/include/net/kcm.h b/include/net/kcm.h
|
diff --git a/include/net/kcm.h b/include/net/kcm.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..1bcae39
|
index 000000000000..1bcae39070ec
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/net/kcm.h
|
+++ b/include/net/kcm.h
|
||||||
@@ -0,0 +1,125 @@
|
@@ -0,0 +1,125 @@
|
||||||
@ -195,7 +195,7 @@ index 0000000..1bcae39
|
|||||||
+#endif /* __NET_KCM_H_ */
|
+#endif /* __NET_KCM_H_ */
|
||||||
diff --git a/include/uapi/linux/kcm.h b/include/uapi/linux/kcm.h
|
diff --git a/include/uapi/linux/kcm.h b/include/uapi/linux/kcm.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..d72350f
|
index 000000000000..d72350fd048d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/uapi/linux/kcm.h
|
+++ b/include/uapi/linux/kcm.h
|
||||||
@@ -0,0 +1,39 @@
|
@@ -0,0 +1,39 @@
|
||||||
@ -239,7 +239,7 @@ index 0000000..d72350f
|
|||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/net/Kconfig b/net/Kconfig
|
diff --git a/net/Kconfig b/net/Kconfig
|
||||||
index 127da94..b8439e6 100644
|
index 127da94ae25e..b8439e61f9a0 100644
|
||||||
--- a/net/Kconfig
|
--- a/net/Kconfig
|
||||||
+++ b/net/Kconfig
|
+++ b/net/Kconfig
|
||||||
@@ -351,6 +351,7 @@ source "net/can/Kconfig"
|
@@ -351,6 +351,7 @@ source "net/can/Kconfig"
|
||||||
@ -251,7 +251,7 @@ index 127da94..b8439e6 100644
|
|||||||
config FIB_RULES
|
config FIB_RULES
|
||||||
bool
|
bool
|
||||||
diff --git a/net/Makefile b/net/Makefile
|
diff --git a/net/Makefile b/net/Makefile
|
||||||
index a5d0409..81d1411 100644
|
index a5d04098dfce..81d14119eab5 100644
|
||||||
--- a/net/Makefile
|
--- a/net/Makefile
|
||||||
+++ b/net/Makefile
|
+++ b/net/Makefile
|
||||||
@@ -34,6 +34,7 @@ obj-$(CONFIG_IRDA) += irda/
|
@@ -34,6 +34,7 @@ obj-$(CONFIG_IRDA) += irda/
|
||||||
@ -264,7 +264,7 @@ index a5d0409..81d1411 100644
|
|||||||
obj-$(CONFIG_DECNET) += decnet/
|
obj-$(CONFIG_DECNET) += decnet/
|
||||||
diff --git a/net/kcm/Kconfig b/net/kcm/Kconfig
|
diff --git a/net/kcm/Kconfig b/net/kcm/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..4f28332
|
index 000000000000..4f28332c7f15
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/kcm/Kconfig
|
+++ b/net/kcm/Kconfig
|
||||||
@@ -0,0 +1,9 @@
|
@@ -0,0 +1,9 @@
|
||||||
@ -279,7 +279,7 @@ index 0000000..4f28332
|
|||||||
+ protocol over kernel connectons (e.g. TCP connections).
|
+ protocol over kernel connectons (e.g. TCP connections).
|
||||||
diff --git a/net/kcm/Makefile b/net/kcm/Makefile
|
diff --git a/net/kcm/Makefile b/net/kcm/Makefile
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..cb525f7
|
index 000000000000..cb525f7c5a13
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/kcm/Makefile
|
+++ b/net/kcm/Makefile
|
||||||
@@ -0,0 +1,3 @@
|
@@ -0,0 +1,3 @@
|
||||||
@ -288,7 +288,7 @@ index 0000000..cb525f7
|
|||||||
+kcm-y := kcmsock.o
|
+kcm-y := kcmsock.o
|
||||||
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c
|
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..649d246
|
index 000000000000..649d246c6799
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/kcm/kcmsock.c
|
+++ b/net/kcm/kcmsock.c
|
||||||
@@ -0,0 +1,2015 @@
|
@@ -0,0 +1,2015 @@
|
||||||
@ -2308,5 +2308,5 @@ index 0000000..649d246
|
|||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_ALIAS_NETPROTO(PF_KCM);
|
+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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Mon, 21 Mar 2016 02:51:09 -0700
|
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
|
This is for the recent kcm driver, which introduces AF_KCM(41) in
|
||||||
b7ac4eb(kcm: Kernel Connection Multiplexor module).
|
b7ac4eb(kcm: Kernel Connection Multiplexor module).
|
||||||
@ -14,7 +14,7 @@ Origin: https://patchwork.ozlabs.org/patch/600006
|
|||||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/net/core/sock.c b/net/core/sock.c
|
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
|
--- a/net/core/sock.c
|
||||||
+++ b/net/core/sock.c
|
+++ b/net/core/sock.c
|
||||||
@@ -263,7 +263,8 @@ static const char *const af_family_key_strings[AF_MAX+1] = {
|
@@ -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>
|
From: Courtney Cavin <courtney.cavin@sonymobile.com>
|
||||||
Date: Wed, 27 Apr 2016 12:13:03 -0700
|
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
|
Add an implementation of Qualcomm's IPC router protocol, used to
|
||||||
communicate with service providing remote processors.
|
communicate with service providing remote processors.
|
||||||
@ -30,7 +30,7 @@ Origin: https://patchwork.ozlabs.org/patch/615774/
|
|||||||
create mode 100644 net/qrtr/smd.c
|
create mode 100644 net/qrtr/smd.c
|
||||||
|
|
||||||
diff --git a/include/linux/socket.h b/include/linux/socket.h
|
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
|
--- a/include/linux/socket.h
|
||||||
+++ b/include/linux/socket.h
|
+++ b/include/linux/socket.h
|
||||||
@@ -201,8 +201,9 @@ struct ucred {
|
@@ -201,8 +201,9 @@ struct ucred {
|
||||||
@ -54,7 +54,7 @@ index 4e1ea53..dbd81e7 100644
|
|||||||
/* Maximum queue length specifiable by listen. */
|
/* Maximum queue length specifiable by listen. */
|
||||||
diff --git a/include/uapi/linux/qrtr.h b/include/uapi/linux/qrtr.h
|
diff --git a/include/uapi/linux/qrtr.h b/include/uapi/linux/qrtr.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..66c0748
|
index 000000000000..66c0748d26e2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/uapi/linux/qrtr.h
|
+++ b/include/uapi/linux/qrtr.h
|
||||||
@@ -0,0 +1,12 @@
|
@@ -0,0 +1,12 @@
|
||||||
@ -71,7 +71,7 @@ index 0000000..66c0748
|
|||||||
+
|
+
|
||||||
+#endif /* _LINUX_QRTR_H */
|
+#endif /* _LINUX_QRTR_H */
|
||||||
diff --git a/net/Kconfig b/net/Kconfig
|
diff --git a/net/Kconfig b/net/Kconfig
|
||||||
index b8439e6..1c9fda1 100644
|
index b8439e61f9a0..1c9fda1c602d 100644
|
||||||
--- a/net/Kconfig
|
--- a/net/Kconfig
|
||||||
+++ b/net/Kconfig
|
+++ b/net/Kconfig
|
||||||
@@ -233,6 +233,7 @@ source "net/mpls/Kconfig"
|
@@ -233,6 +233,7 @@ source "net/mpls/Kconfig"
|
||||||
@ -83,7 +83,7 @@ index b8439e6..1c9fda1 100644
|
|||||||
config RPS
|
config RPS
|
||||||
bool
|
bool
|
||||||
diff --git a/net/Makefile b/net/Makefile
|
diff --git a/net/Makefile b/net/Makefile
|
||||||
index 81d1411..bdd1455 100644
|
index 81d14119eab5..bdd14553a774 100644
|
||||||
--- a/net/Makefile
|
--- a/net/Makefile
|
||||||
+++ b/net/Makefile
|
+++ b/net/Makefile
|
||||||
@@ -78,3 +78,4 @@ endif
|
@@ -78,3 +78,4 @@ endif
|
||||||
@ -93,7 +93,7 @@ index 81d1411..bdd1455 100644
|
|||||||
+obj-$(CONFIG_QRTR) += qrtr/
|
+obj-$(CONFIG_QRTR) += qrtr/
|
||||||
diff --git a/net/qrtr/Kconfig b/net/qrtr/Kconfig
|
diff --git a/net/qrtr/Kconfig b/net/qrtr/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..0c2619d
|
index 000000000000..0c2619d068bd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/qrtr/Kconfig
|
+++ b/net/qrtr/Kconfig
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
@ -123,7 +123,7 @@ index 0000000..0c2619d
|
|||||||
+endif # QRTR
|
+endif # QRTR
|
||||||
diff --git a/net/qrtr/Makefile b/net/qrtr/Makefile
|
diff --git a/net/qrtr/Makefile b/net/qrtr/Makefile
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..e282a84
|
index 000000000000..e282a84ffc5c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/qrtr/Makefile
|
+++ b/net/qrtr/Makefile
|
||||||
@@ -0,0 +1,2 @@
|
@@ -0,0 +1,2 @@
|
||||||
@ -131,7 +131,7 @@ index 0000000..e282a84
|
|||||||
+obj-$(CONFIG_QRTR_SMD) += smd.o
|
+obj-$(CONFIG_QRTR_SMD) += smd.o
|
||||||
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c
|
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..c985ecb
|
index 000000000000..c985ecbe9bd6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/qrtr/qrtr.c
|
+++ b/net/qrtr/qrtr.c
|
||||||
@@ -0,0 +1,1007 @@
|
@@ -0,0 +1,1007 @@
|
||||||
@ -1144,7 +1144,7 @@ index 0000000..c985ecb
|
|||||||
+MODULE_LICENSE("GPL v2");
|
+MODULE_LICENSE("GPL v2");
|
||||||
diff --git a/net/qrtr/qrtr.h b/net/qrtr/qrtr.h
|
diff --git a/net/qrtr/qrtr.h b/net/qrtr/qrtr.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..2b84871
|
index 000000000000..2b848718f8fe
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/qrtr/qrtr.h
|
+++ b/net/qrtr/qrtr.h
|
||||||
@@ -0,0 +1,31 @@
|
@@ -0,0 +1,31 @@
|
||||||
@ -1181,7 +1181,7 @@ index 0000000..2b84871
|
|||||||
+#endif
|
+#endif
|
||||||
diff --git a/net/qrtr/smd.c b/net/qrtr/smd.c
|
diff --git a/net/qrtr/smd.c b/net/qrtr/smd.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..84ebce7
|
index 000000000000..84ebce73aa23
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/qrtr/smd.c
|
+++ b/net/qrtr/smd.c
|
||||||
@@ -0,0 +1,117 @@
|
@@ -0,0 +1,117 @@
|
||||||
@ -1303,5 +1303,5 @@ index 0000000..84ebce7
|
|||||||
+MODULE_DESCRIPTION("Qualcomm IPC-Router SMD interface driver");
|
+MODULE_DESCRIPTION("Qualcomm IPC-Router SMD interface driver");
|
||||||
+MODULE_LICENSE("GPL v2");
|
+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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Sun, 15 May 2016 09:53:11 -0700
|
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
|
Hyper-V Sockets (hv_sock) supplies a byte-stream based communication
|
||||||
mechanism between the host and the guest. It's somewhat like TCP over
|
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
|
create mode 100644 net/hv_sock/af_hvsock.c
|
||||||
|
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||||
index 12d49f5..fa87bdd 100644
|
index 12d49f58c4e0..fa87bddcf2df 100644
|
||||||
--- a/MAINTAINERS
|
--- a/MAINTAINERS
|
||||||
+++ b/MAINTAINERS
|
+++ b/MAINTAINERS
|
||||||
@@ -5123,7 +5123,9 @@ F: drivers/input/serio/hyperv-keyboard.c
|
@@ -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
|
F: Documentation/ABI/stable/sysfs-bus-vmbus
|
||||||
|
|
||||||
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
|
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
|
--- a/include/linux/hyperv.h
|
||||||
+++ b/include/linux/hyperv.h
|
+++ b/include/linux/hyperv.h
|
||||||
@@ -1349,4 +1349,18 @@ extern __u32 vmbus_proto_version;
|
@@ -1349,4 +1349,18 @@ extern __u32 vmbus_proto_version;
|
||||||
@ -78,7 +78,7 @@ index 6c9695e..187d4bd 100644
|
|||||||
+ PREV_INDICES_LEN)
|
+ PREV_INDICES_LEN)
|
||||||
#endif /* _HYPERV_H */
|
#endif /* _HYPERV_H */
|
||||||
diff --git a/include/linux/socket.h b/include/linux/socket.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
|
--- a/include/linux/socket.h
|
||||||
+++ b/include/linux/socket.h
|
+++ b/include/linux/socket.h
|
||||||
@@ -202,8 +202,9 @@ struct ucred {
|
@@ -202,8 +202,9 @@ struct ucred {
|
||||||
@ -102,7 +102,7 @@ index dbd81e7..6634c47 100644
|
|||||||
/* Maximum queue length specifiable by listen. */
|
/* Maximum queue length specifiable by listen. */
|
||||||
diff --git a/include/net/af_hvsock.h b/include/net/af_hvsock.h
|
diff --git a/include/net/af_hvsock.h b/include/net/af_hvsock.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..7c8c41e
|
index 000000000000..7c8c41e78157
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/net/af_hvsock.h
|
+++ b/include/net/af_hvsock.h
|
||||||
@@ -0,0 +1,78 @@
|
@@ -0,0 +1,78 @@
|
||||||
@ -185,7 +185,7 @@ index 0000000..7c8c41e
|
|||||||
+
|
+
|
||||||
+#endif /* __AF_HVSOCK_H__ */
|
+#endif /* __AF_HVSOCK_H__ */
|
||||||
diff --git a/include/uapi/linux/hyperv.h b/include/uapi/linux/hyperv.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
|
--- a/include/uapi/linux/hyperv.h
|
||||||
+++ b/include/uapi/linux/hyperv.h
|
+++ b/include/uapi/linux/hyperv.h
|
||||||
@@ -26,6 +26,7 @@
|
@@ -26,6 +26,7 @@
|
||||||
@ -226,7 +226,7 @@ index e347b24..408b832 100644
|
|||||||
+
|
+
|
||||||
#endif /* _UAPI_HYPERV_H */
|
#endif /* _UAPI_HYPERV_H */
|
||||||
diff --git a/net/Kconfig b/net/Kconfig
|
diff --git a/net/Kconfig b/net/Kconfig
|
||||||
index 1c9fda1..9eeccb7 100644
|
index 1c9fda1c602d..9eeccb75ee4e 100644
|
||||||
--- a/net/Kconfig
|
--- a/net/Kconfig
|
||||||
+++ b/net/Kconfig
|
+++ b/net/Kconfig
|
||||||
@@ -228,6 +228,7 @@ source "net/dns_resolver/Kconfig"
|
@@ -228,6 +228,7 @@ source "net/dns_resolver/Kconfig"
|
||||||
@ -238,7 +238,7 @@ index 1c9fda1..9eeccb7 100644
|
|||||||
source "net/mpls/Kconfig"
|
source "net/mpls/Kconfig"
|
||||||
source "net/hsr/Kconfig"
|
source "net/hsr/Kconfig"
|
||||||
diff --git a/net/Makefile b/net/Makefile
|
diff --git a/net/Makefile b/net/Makefile
|
||||||
index bdd1455..ec175dd 100644
|
index bdd14553a774..ec175ddfac38 100644
|
||||||
--- a/net/Makefile
|
--- a/net/Makefile
|
||||||
+++ b/net/Makefile
|
+++ b/net/Makefile
|
||||||
@@ -70,6 +70,7 @@ obj-$(CONFIG_BATMAN_ADV) += batman-adv/
|
@@ -70,6 +70,7 @@ obj-$(CONFIG_BATMAN_ADV) += batman-adv/
|
||||||
@ -251,7 +251,7 @@ index bdd1455..ec175dd 100644
|
|||||||
ifneq ($(CONFIG_NET_SWITCHDEV),)
|
ifneq ($(CONFIG_NET_SWITCHDEV),)
|
||||||
diff --git a/net/hv_sock/Kconfig b/net/hv_sock/Kconfig
|
diff --git a/net/hv_sock/Kconfig b/net/hv_sock/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..1f41848
|
index 000000000000..1f4184829dde
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/hv_sock/Kconfig
|
+++ b/net/hv_sock/Kconfig
|
||||||
@@ -0,0 +1,10 @@
|
@@ -0,0 +1,10 @@
|
||||||
@ -267,7 +267,7 @@ index 0000000..1f41848
|
|||||||
+ will be called hv_sock.
|
+ will be called hv_sock.
|
||||||
diff --git a/net/hv_sock/Makefile b/net/hv_sock/Makefile
|
diff --git a/net/hv_sock/Makefile b/net/hv_sock/Makefile
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..716c012
|
index 000000000000..716c01230129
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/hv_sock/Makefile
|
+++ b/net/hv_sock/Makefile
|
||||||
@@ -0,0 +1,3 @@
|
@@ -0,0 +1,3 @@
|
||||||
@ -276,7 +276,7 @@ index 0000000..716c012
|
|||||||
+hv_sock-y += af_hvsock.o
|
+hv_sock-y += af_hvsock.o
|
||||||
diff --git a/net/hv_sock/af_hvsock.c b/net/hv_sock/af_hvsock.c
|
diff --git a/net/hv_sock/af_hvsock.c b/net/hv_sock/af_hvsock.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..b91bd60
|
index 000000000000..b91bd608bf39
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/net/hv_sock/af_hvsock.c
|
+++ b/net/hv_sock/af_hvsock.c
|
||||||
@@ -0,0 +1,1520 @@
|
@@ -0,0 +1,1520 @@
|
||||||
@ -1801,5 +1801,5 @@ index 0000000..b91bd60
|
|||||||
+MODULE_DESCRIPTION("Hyper-V Sockets");
|
+MODULE_DESCRIPTION("Hyper-V Sockets");
|
||||||
+MODULE_LICENSE("Dual BSD/GPL");
|
+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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Mon, 21 Mar 2016 02:53:08 -0700
|
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).
|
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(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/net/core/sock.c b/net/core/sock.c
|
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
|
--- a/net/core/sock.c
|
||||||
+++ b/net/core/sock.c
|
+++ b/net/core/sock.c
|
||||||
@@ -264,7 +264,7 @@ static const char *const af_family_key_strings[AF_MAX+1] = {
|
@@ -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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Sat, 21 May 2016 16:55:50 +0800
|
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
|
updating the percpu list
|
||||||
|
|
||||||
There is a rare race when we remove an entry from the global 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(-)
|
2 files changed, 17 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
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
|
--- a/drivers/hv/channel.c
|
||||||
+++ b/drivers/hv/channel.c
|
+++ b/drivers/hv/channel.c
|
||||||
@@ -592,6 +592,7 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
@@ -592,6 +592,7 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
||||||
@ -40,7 +40,7 @@ index 57a1b65..da76a2e 100644
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/drivers/hv/channel_mgmt.c
|
+++ b/drivers/hv/channel_mgmt.c
|
||||||
@@ -21,6 +21,7 @@
|
@@ -21,6 +21,7 @@
|
||||||
@ -129,5 +129,5 @@ index c892db5..0a54317 100644
|
|||||||
err_free_chan:
|
err_free_chan:
|
||||||
free_channel(newchannel);
|
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>
|
From: Rolf Neugebauer <rolf.neugebauer@gmail.com>
|
||||||
Date: Mon, 23 May 2016 18:55:45 +0100
|
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()
|
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
|
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(-)
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
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
|
--- a/drivers/hv/channel_mgmt.c
|
||||||
+++ b/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)
|
@@ -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>
|
From: James Bottomley <James.Bottomley@HansenPartnership.com>
|
||||||
Date: Wed, 17 Feb 2016 16:49:38 -0800
|
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
|
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
|
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(+)
|
2 files changed, 21 insertions(+)
|
||||||
|
|
||||||
diff --git a/fs/internal.h b/fs/internal.h
|
diff --git a/fs/internal.h b/fs/internal.h
|
||||||
index b71deee..c8ca0c9 100644
|
index 71859c4d0b41..c0022708ff3a 100644
|
||||||
--- a/fs/internal.h
|
--- a/fs/internal.h
|
||||||
+++ b/fs/internal.h
|
+++ b/fs/internal.h
|
||||||
@@ -108,6 +108,7 @@ extern long do_handle_open(int mountdirfd,
|
@@ -108,6 +108,7 @@ extern long do_handle_open(int mountdirfd,
|
||||||
@ -29,10 +29,10 @@ index b71deee..c8ca0c9 100644
|
|||||||
/*
|
/*
|
||||||
* inode.c
|
* inode.c
|
||||||
diff --git a/fs/open.c b/fs/open.c
|
diff --git a/fs/open.c b/fs/open.c
|
||||||
index 17cb6b1..bfe6f2b 100644
|
index 157b9940dd73..9d993f928ea0 100644
|
||||||
--- a/fs/open.c
|
--- a/fs/open.c
|
||||||
+++ b/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);
|
EXPORT_SYMBOL(file_open_root);
|
||||||
|
|
||||||
@ -60,5 +60,5 @@ index 17cb6b1..bfe6f2b 100644
|
|||||||
{
|
{
|
||||||
struct open_flags op;
|
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>
|
From: James Bottomley <James.Bottomley@HansenPartnership.com>
|
||||||
Date: Wed, 17 Feb 2016 16:51:16 -0800
|
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
|
containers
|
||||||
|
|
||||||
This patch adds a new flag 'F' to the binfmt handlers. If you pass in
|
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(-)
|
1 file changed, 39 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
|
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
|
--- a/fs/binfmt_misc.c
|
||||||
+++ b/fs/binfmt_misc.c
|
+++ b/fs/binfmt_misc.c
|
||||||
@@ -26,6 +26,8 @@
|
@@ -26,6 +26,8 @@
|
||||||
@ -32,7 +32,7 @@ index 3a3ced7..8a108c4 100644
|
|||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
# define USE_DEBUG 1
|
# define USE_DEBUG 1
|
||||||
#else
|
#else
|
||||||
@@ -43,6 +45,7 @@ enum {
|
@@ -43,6 +45,7 @@ enum {Enabled, Magic};
|
||||||
#define MISC_FMT_PRESERVE_ARGV0 (1 << 31)
|
#define MISC_FMT_PRESERVE_ARGV0 (1 << 31)
|
||||||
#define MISC_FMT_OPEN_BINARY (1 << 30)
|
#define MISC_FMT_OPEN_BINARY (1 << 30)
|
||||||
#define MISC_FMT_CREDENTIALS (1 << 29)
|
#define MISC_FMT_CREDENTIALS (1 << 29)
|
||||||
@ -40,7 +40,7 @@ index 3a3ced7..8a108c4 100644
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
@@ -54,6 +57,7 @@ enum {
|
@@ -54,6 +57,7 @@ typedef struct {
|
||||||
char *interpreter; /* filename of interpreter */
|
char *interpreter; /* filename of interpreter */
|
||||||
char *name;
|
char *name;
|
||||||
struct dentry *dentry;
|
struct dentry *dentry;
|
||||||
@ -118,7 +118,7 @@ index 3a3ced7..8a108c4 100644
|
|||||||
e->dentry = dget(dentry);
|
e->dentry = dget(dentry);
|
||||||
inode->i_private = e;
|
inode->i_private = e;
|
||||||
inode->i_fop = &bm_entry_operations;
|
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) {
|
if (err) {
|
||||||
kfree(e);
|
kfree(e);
|
||||||
@ -128,5 +128,5 @@ index 3a3ced7..8a108c4 100644
|
|||||||
return count;
|
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>
|
From: Ian Campbell <ian.campbell@docker.com>
|
||||||
Date: Mon, 4 Apr 2016 14:50:10 +0100
|
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
|
The VSOCK addressing schema does not really lend itself to simply creating an
|
||||||
alternative end point address within a namespace.
|
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>
|
From: Dexuan Cui <decui@microsoft.com>
|
||||||
Date: Sat, 23 Jul 2016 01:35:51 +0000
|
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
|
Hyper-V Sockets (hv_sock) supplies a byte-stream based communication
|
||||||
mechanism between the host and the guest. It's somewhat like TCP over
|
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>
|
From: Rolf Neugebauer <rolf.neugebauer@gmail.com>
|
||||||
Date: Mon, 23 May 2016 18:55:45 +0100
|
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()
|
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
|
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>
|
From: Alex Ng <alexng@messages.microsoft.com>
|
||||||
Date: Sun, 6 Nov 2016 13:14:07 -0800
|
Date: Sun, 6 Nov 2016 13:14:07 -0800
|
||||||
Subject: [PATCH 4/7] Drivers: hv: utils: Fix the mapping between host version
|
Subject: [PATCH 04/11] Drivers: hv: utils: Fix the mapping between host
|
||||||
and protocol to use
|
version and protocol to use
|
||||||
|
|
||||||
We should intentionally declare the protocols to use for every known host
|
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.
|
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>
|
From: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||||
Date: Wed, 11 Jan 2017 22:40:38 +0000
|
Date: Wed, 11 Jan 2017 22:40:38 +0000
|
||||||
Subject: [PATCH 5/7] Drivers: hv: utils: Force TimeSync version 3.0 on Windows
|
Subject: [PATCH 05/11] Drivers: hv: utils: Force TimeSync version 3.0 on
|
||||||
10
|
Windows 10
|
||||||
|
|
||||||
Some older Windows 10 builds, including 10586 do not seem to
|
Some older Windows 10 builds, including 10586 do not seem to
|
||||||
support TimeSync protocol 4.0 causing loss of time synchronisation
|
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>
|
From: David Sheets <david.sheets@docker.com>
|
||||||
Date: Fri, 13 Jan 2017 15:58:30 +0000
|
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
|
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
|
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>
|
From: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||||
Date: Tue, 17 Jan 2017 18:13:51 +0000
|
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
|
This patch part reverts fd2a0437dc33 and e858fae2b0b8 which introduced a
|
||||||
subtle change in how the virtio_net flags are derived from the SKBs
|
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