From 593d3f907ef757a0c4858138f8101fafbdc5278b Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Mon, 19 Sep 2016 18:20:28 +0100 Subject: [PATCH] linux: update kernel to 4.4.21 - removed some Hyper-V patches which were picked up between 4.4.20 and 4.4.21 - udate aufs Signed-off-by: Rolf Neugebauer --- alpine/kernel/Dockerfile | 6 +- ...make-find_vqs-checkpatch.pl-friendly.patch | 6 +- ...vmci_transport_notify_ops-structures.patch | 6 +- ...the-area-influenced-by-prepare_to_wa.patch | 6 +- ...istener-child-lock-ordering-explicit.patch | 6 +- ...t-specific-vsock_transport-functions.patch | 6 +- ...OCK-defer-sock-removal-to-transports.patch | 6 +- ...OCK-Introduce-virtio_vsock_common.ko.patch | 14 +- ...-VSOCK-Introduce-virtio_transport.ko.patch | 10 +- .../0009-VSOCK-Introduce-vhost_vsock.ko.patch | 10 +- .../0010-VSOCK-Add-Makefile-and-Kconfig.patch | 6 +- .../patches/0011-VSOCK-Use-kvfree.patch | 6 +- ...vhost-virtio_vsock_pkt-use-after-fre.patch | 6 +- ...-virtio-vsock-fix-include-guard-typo.patch | 6 +- ...drop-space-available-check-for-TX-vq.patch | 6 +- ...-host-network-namespace-to-use-AF_VS.patch | 6 +- ...e-the-channel-type-for-Hyper-V-PCI-E.patch | 12 +- ...-vmbus-Use-uuid_le-type-consistently.patch | 20 +-- ...-Use-uuid_le_cmp-for-comparing-GUIDs.patch | 16 +-- ...do-sanity-check-of-channel-state-in.patch} | 8 +- ...-serialize-process_chn_event-and-vmb.patch | 87 ------------- ...release-relid-on-error-in-vmbus_pro.patch} | 14 +- ...channge-vmbus_connection.channel_lo.patch} | 20 +-- ...-fix-rescind-offer-handling-for-devi.patch | 122 ------------------ ...-code-duplication-between-vmbus_rec.patch} | 6 +- ...fix-the-building-warning-with-hyper.patch} | 6 +- ...Treat-Fibre-Channel-devices-as-perf.patch} | 12 +- ...s-Add-vendor-and-device-atttributes.patch} | 28 ++-- ...add-a-helper-function-to-set-a-chan.patch} | 6 +- ...define-the-new-offer-type-for-Hyper.patch} | 6 +- ...-avoid-infinite-loop-in-init_vp_inde.patch | 49 ------- ...vmbus_sendpacket_ctl-hvsock-avoid-u.patch} | 6 +- ...-avoid-scheduling-in-interrupt-conte.patch | 99 -------------- ...define-a-new-VMBus-message-type-for.patch} | 6 +- ...add-a-hvsock-flag-in-struct-hv_driv.patch} | 10 +- ...-add-a-per-channel-rescind-callback.patch} | 6 +- ...add-an-API-vmbus_hvsock_device_unre.patch} | 6 +- ...Give-control-over-how-the-ring-acce.patch} | 10 +- ...-avoid-wait_for_completion-on-crash.patch} | 16 +-- ...avoid-unneeded-compiler-optimizatio.patch} | 6 +- ...ernel-Connection-Multiplexor-module.patch} | 6 +- ...F_KCM-entries-to-family-name-tables.patch} | 6 +- ...=> 0038-net-Add-Qualcomm-IPC-router.patch} | 6 +- ...9-hv_sock-introduce-Hyper-V-Sockets.patch} | 14 +- ...YPERV-entries-to-family-name-tables.patch} | 6 +- ...fix-the-race-when-querying-updating.patch} | 6 +- ...-t-spam-the-logs-with-unknown-GUIDs.patch} | 6 +- 47 files changed, 191 insertions(+), 548 deletions(-) rename alpine/kernel/patches/{0020-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch => 0019-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch} (88%) delete mode 100644 alpine/kernel/patches/0019-Drivers-hv-vmbus-serialize-process_chn_event-and-vmb.patch rename alpine/kernel/patches/{0022-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch => 0020-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch} (84%) rename alpine/kernel/patches/{0023-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch => 0021-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch} (87%) delete mode 100644 alpine/kernel/patches/0021-Drivers-hv-vmbus-fix-rescind-offer-handling-for-devi.patch rename alpine/kernel/patches/{0024-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch => 0022-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch} (96%) rename alpine/kernel/patches/{0025-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch => 0023-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch} (94%) rename alpine/kernel/patches/{0026-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch => 0024-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch} (78%) rename alpine/kernel/patches/{0027-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch => 0025-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch} (92%) rename alpine/kernel/patches/{0030-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch => 0026-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch} (87%) rename alpine/kernel/patches/{0031-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch => 0027-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch} (90%) delete mode 100644 alpine/kernel/patches/0028-Drivers-hv-vmbus-avoid-infinite-loop-in-init_vp_inde.patch rename alpine/kernel/patches/{0032-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch => 0028-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch} (91%) delete mode 100644 alpine/kernel/patches/0029-Drivers-hv-vmbus-avoid-scheduling-in-interrupt-conte.patch rename alpine/kernel/patches/{0033-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch => 0029-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch} (95%) rename alpine/kernel/patches/{0034-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch => 0030-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch} (90%) rename alpine/kernel/patches/{0035-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch => 0031-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch} (94%) rename alpine/kernel/patches/{0036-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch => 0032-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch} (97%) rename alpine/kernel/patches/{0037-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch => 0033-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch} (96%) rename alpine/kernel/patches/{0038-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch => 0034-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch} (89%) rename alpine/kernel/patches/{0039-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch => 0035-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch} (90%) rename alpine/kernel/patches/{0040-kcm-Kernel-Connection-Multiplexor-module.patch => 0036-kcm-Kernel-Connection-Multiplexor-module.patch} (99%) rename alpine/kernel/patches/{0041-net-add-the-AF_KCM-entries-to-family-name-tables.patch => 0037-net-add-the-AF_KCM-entries-to-family-name-tables.patch} (94%) rename alpine/kernel/patches/{0042-net-Add-Qualcomm-IPC-router.patch => 0038-net-Add-Qualcomm-IPC-router.patch} (99%) rename alpine/kernel/patches/{0043-hv_sock-introduce-Hyper-V-Sockets.patch => 0039-hv_sock-introduce-Hyper-V-Sockets.patch} (99%) rename alpine/kernel/patches/{0044-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch => 0040-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch} (93%) rename alpine/kernel/patches/{0045-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch => 0041-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch} (96%) rename alpine/kernel/patches/{0046-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch => 0042-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch} (86%) diff --git a/alpine/kernel/Dockerfile b/alpine/kernel/Dockerfile index 7b1749625..6e58fb738 100644 --- a/alpine/kernel/Dockerfile +++ b/alpine/kernel/Dockerfile @@ -1,6 +1,6 @@ FROM mobylinux/debian-build-kernel:a009a11bf0ad -ARG KERNEL_VERSION=4.4.20 +ARG KERNEL_VERSION=4.4.21 ENV KERNEL_SOURCE=https://www.kernel.org/pub/linux/kernel/v4.x/linux-${KERNEL_VERSION}.tar.xz @@ -8,10 +8,10 @@ RUN curl -sSL -o linux-${KERNEL_VERSION}.tar.xz ${KERNEL_SOURCE} RUN cat linux-${KERNEL_VERSION}.tar.xz | tar --absolute-names -xJ && mv /linux-${KERNEL_VERSION} /linux -# this is aufs4.4 20160905 +# this is aufs4.4 20160912 ENV AUFS_REPO https://github.com/sfjro/aufs4-standalone ENV AUFS_BRANCH aufs4.4 -ENV AUFS_COMMIT 8be74e42b108f9cbbb0d59a87468505a48ff2757 +ENV AUFS_COMMIT 7d174ae40b4c9c876ee51aa50fa4ee1f3747de23 # Download AUFS RUN git clone -b "$AUFS_BRANCH" "$AUFS_REPO" /aufs && \ diff --git a/alpine/kernel/patches/0001-virtio-make-find_vqs-checkpatch.pl-friendly.patch b/alpine/kernel/patches/0001-virtio-make-find_vqs-checkpatch.pl-friendly.patch index 1f134a23a..0fd255114 100644 --- a/alpine/kernel/patches/0001-virtio-make-find_vqs-checkpatch.pl-friendly.patch +++ b/alpine/kernel/patches/0001-virtio-make-find_vqs-checkpatch.pl-friendly.patch @@ -1,7 +1,7 @@ -From 0d67af6648f600656eb20cb2ca1d35cb0985e9bd Mon Sep 17 00:00:00 2001 +From 622883ec571c468f756195c13726740bdd33a0ee Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Thu, 17 Dec 2015 16:53:43 +0800 -Subject: [PATCH 01/46] virtio: make find_vqs() checkpatch.pl-friendly +Subject: [PATCH 01/42] virtio: make find_vqs() checkpatch.pl-friendly checkpatch.pl wants arrays of strings declared as follows: @@ -215,5 +215,5 @@ index e5ce8ab..6e6cb0c 100644 u64 (*get_features)(struct virtio_device *vdev); int (*finalize_features)(struct virtio_device *vdev); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0002-VSOCK-constify-vmci_transport_notify_ops-structures.patch b/alpine/kernel/patches/0002-VSOCK-constify-vmci_transport_notify_ops-structures.patch index 62df5db6d..ff2c9634d 100644 --- a/alpine/kernel/patches/0002-VSOCK-constify-vmci_transport_notify_ops-structures.patch +++ b/alpine/kernel/patches/0002-VSOCK-constify-vmci_transport_notify_ops-structures.patch @@ -1,7 +1,7 @@ -From f1e0be6f17679e7f532989bae3290bb4ed3ba773 Mon Sep 17 00:00:00 2001 +From 8dc15fd8fab55e076a640d1a5d6f34b77e196632 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 21 Nov 2015 18:39:17 +0100 -Subject: [PATCH 02/46] VSOCK: constify vmci_transport_notify_ops structures +Subject: [PATCH 02/42] VSOCK: constify vmci_transport_notify_ops structures The vmci_transport_notify_ops structures are never modified, so declare them as const. @@ -73,5 +73,5 @@ index dc9c792..21e591d 100644 vmci_transport_notify_pkt_socket_destruct, vmci_transport_notify_pkt_poll_in, -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0003-AF_VSOCK-Shrink-the-area-influenced-by-prepare_to_wa.patch b/alpine/kernel/patches/0003-AF_VSOCK-Shrink-the-area-influenced-by-prepare_to_wa.patch index e544661d5..8c0d62952 100644 --- a/alpine/kernel/patches/0003-AF_VSOCK-Shrink-the-area-influenced-by-prepare_to_wa.patch +++ b/alpine/kernel/patches/0003-AF_VSOCK-Shrink-the-area-influenced-by-prepare_to_wa.patch @@ -1,7 +1,7 @@ -From bc63a861a8379269f4a51fdaac3d40f9161aea4d Mon Sep 17 00:00:00 2001 +From 761aa629641afa804127aea0e3ce5c95dddfcb17 Mon Sep 17 00:00:00 2001 From: Claudio Imbrenda Date: Tue, 22 Mar 2016 17:05:52 +0100 -Subject: [PATCH 03/46] AF_VSOCK: Shrink the area influenced by prepare_to_wait +Subject: [PATCH 03/42] AF_VSOCK: Shrink the area influenced by prepare_to_wait When a thread is prepared for waiting by calling prepare_to_wait, sleeping is not allowed until either the wait has taken place or finish_wait has @@ -332,5 +332,5 @@ index 9b5bd6d..b5f1221 100644 release_sock(sk); return err; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0004-vsock-make-listener-child-lock-ordering-explicit.patch b/alpine/kernel/patches/0004-vsock-make-listener-child-lock-ordering-explicit.patch index 6c8795231..ecaa8e3e0 100644 --- a/alpine/kernel/patches/0004-vsock-make-listener-child-lock-ordering-explicit.patch +++ b/alpine/kernel/patches/0004-vsock-make-listener-child-lock-ordering-explicit.patch @@ -1,7 +1,7 @@ -From c1bc13ebe28532f99cb6b8edaa57a6aa61adbe58 Mon Sep 17 00:00:00 2001 +From 8386f4e436f280cec08f95338ae5e44bc8aa5b5e Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Thu, 23 Jun 2016 16:28:58 +0100 -Subject: [PATCH 04/46] vsock: make listener child lock ordering explicit +Subject: [PATCH 04/42] vsock: make listener child lock ordering explicit There are several places where the listener and pending or accept queue child sockets are accessed at the same time. Lockdep is unhappy that @@ -59,5 +59,5 @@ index b5f1221..b96ac91 100644 /* If the listener socket has received an error, then we should -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0005-VSOCK-transport-specific-vsock_transport-functions.patch b/alpine/kernel/patches/0005-VSOCK-transport-specific-vsock_transport-functions.patch index d9c50bdbe..edf521c29 100644 --- a/alpine/kernel/patches/0005-VSOCK-transport-specific-vsock_transport-functions.patch +++ b/alpine/kernel/patches/0005-VSOCK-transport-specific-vsock_transport-functions.patch @@ -1,7 +1,7 @@ -From 3351d8e1a0e52529aea4b5c3ce0c2ef3ad43ee17 Mon Sep 17 00:00:00 2001 +From ae6d39c3a4cd08ce37606ab36b202702a48f5440 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Thu, 28 Jul 2016 15:36:30 +0100 -Subject: [PATCH 05/46] VSOCK: transport-specific vsock_transport functions +Subject: [PATCH 05/42] VSOCK: transport-specific vsock_transport functions struct vsock_transport contains function pointers called by AF_VSOCK core code. The transport may want its own transport-specific function @@ -55,5 +55,5 @@ index b96ac91..e34d96f 100644 MODULE_DESCRIPTION("VMware Virtual Socket Family"); MODULE_VERSION("1.0.1.0-k"); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0006-VSOCK-defer-sock-removal-to-transports.patch b/alpine/kernel/patches/0006-VSOCK-defer-sock-removal-to-transports.patch index 1e2144489..36f65a70d 100644 --- a/alpine/kernel/patches/0006-VSOCK-defer-sock-removal-to-transports.patch +++ b/alpine/kernel/patches/0006-VSOCK-defer-sock-removal-to-transports.patch @@ -1,7 +1,7 @@ -From 54f528a28ab97e1306180adde7ba15c4158428db Mon Sep 17 00:00:00 2001 +From 816c87fe6ecfa46981c0ca332d21f1e0d8bfd8a0 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Thu, 28 Jul 2016 15:36:31 +0100 -Subject: [PATCH 06/46] VSOCK: defer sock removal to transports +Subject: [PATCH 06/42] VSOCK: defer sock removal to transports The virtio transport will implement graceful shutdown and the related SO_LINGER socket option. This requires orphaning the sock but keeping @@ -79,5 +79,5 @@ index 0a369bb..706991e 100644 vmci_datagram_destroy_handle(vmci_trans(vsk)->dg_handle); vmci_trans(vsk)->dg_handle = VMCI_INVALID_HANDLE; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0007-VSOCK-Introduce-virtio_vsock_common.ko.patch b/alpine/kernel/patches/0007-VSOCK-Introduce-virtio_vsock_common.ko.patch index 381bf1eff..aaa7a887a 100644 --- a/alpine/kernel/patches/0007-VSOCK-Introduce-virtio_vsock_common.ko.patch +++ b/alpine/kernel/patches/0007-VSOCK-Introduce-virtio_vsock_common.ko.patch @@ -1,7 +1,7 @@ -From ec54f262b84f327f1c0ecabce6f0c9b5c75ff2df Mon Sep 17 00:00:00 2001 +From fe9f8cb30a5c819adabb5b9b598f7776cbbdc4f0 Mon Sep 17 00:00:00 2001 From: Asias He Date: Thu, 28 Jul 2016 15:36:32 +0100 -Subject: [PATCH 07/46] VSOCK: Introduce virtio_vsock_common.ko +Subject: [PATCH 07/42] VSOCK: Introduce virtio_vsock_common.ko This module contains the common code and header files for the following virtio_transporto and vhost_vsock kernel modules. @@ -27,10 +27,10 @@ Signed-off-by: Michael S. Tsirkin create mode 100644 net/vmw_vsock/virtio_transport_common.c diff --git a/MAINTAINERS b/MAINTAINERS -index 48bd523..3e60f59 100644 +index ab65bbe..b93ba8b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -11395,6 +11395,16 @@ S: Maintained +@@ -11382,6 +11382,16 @@ S: Maintained F: drivers/media/v4l2-core/videobuf2-* F: include/media/videobuf2-* @@ -371,10 +371,10 @@ index 0000000..b7f1d62 +/* This part must be outside protection */ +#include diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild -index 32152e7..c830e9f 100644 +index ebd10e6..6c51a4d 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild -@@ -448,6 +448,7 @@ header-y += virtio_ring.h +@@ -447,6 +447,7 @@ header-y += virtio_ring.h header-y += virtio_rng.h header-y += virtio_scsi.h header-y += virtio_types.h @@ -1492,5 +1492,5 @@ index 0000000..a53b3a1 +MODULE_AUTHOR("Asias He"); +MODULE_DESCRIPTION("common code for virtio vsock"); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0008-VSOCK-Introduce-virtio_transport.ko.patch b/alpine/kernel/patches/0008-VSOCK-Introduce-virtio_transport.ko.patch index b8339c613..78931bc21 100644 --- a/alpine/kernel/patches/0008-VSOCK-Introduce-virtio_transport.ko.patch +++ b/alpine/kernel/patches/0008-VSOCK-Introduce-virtio_transport.ko.patch @@ -1,7 +1,7 @@ -From e21bdf5a9a62fbdabddca3cafc8aa2b02f2cc165 Mon Sep 17 00:00:00 2001 +From c384834d9495c7b2a36b0054d08ddf3240687bdc Mon Sep 17 00:00:00 2001 From: Asias He Date: Thu, 28 Jul 2016 15:36:33 +0100 -Subject: [PATCH 08/46] VSOCK: Introduce virtio_transport.ko +Subject: [PATCH 08/42] VSOCK: Introduce virtio_transport.ko VM sockets virtio transport implementation. This driver runs in the guest. @@ -17,10 +17,10 @@ Signed-off-by: Michael S. Tsirkin create mode 100644 net/vmw_vsock/virtio_transport.c diff --git a/MAINTAINERS b/MAINTAINERS -index 3e60f59..c7e4c9a 100644 +index b93ba8b..82d1123 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -11404,6 +11404,7 @@ S: Maintained +@@ -11391,6 +11391,7 @@ S: Maintained F: include/linux/virtio_vsock.h F: include/uapi/linux/virtio_vsock.h F: net/vmw_vsock/virtio_transport_common.c @@ -659,5 +659,5 @@ index 0000000..699dfab +MODULE_DESCRIPTION("virtio transport for vsock"); +MODULE_DEVICE_TABLE(virtio, id_table); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0009-VSOCK-Introduce-vhost_vsock.ko.patch b/alpine/kernel/patches/0009-VSOCK-Introduce-vhost_vsock.ko.patch index 6a43020bc..ea0d3196f 100644 --- a/alpine/kernel/patches/0009-VSOCK-Introduce-vhost_vsock.ko.patch +++ b/alpine/kernel/patches/0009-VSOCK-Introduce-vhost_vsock.ko.patch @@ -1,7 +1,7 @@ -From 7cba4e91a9e1359345ccb7dbff243cedf5b5e6ea Mon Sep 17 00:00:00 2001 +From a0af1060ea091348b94bd3780e5b92a3334e64b2 Mon Sep 17 00:00:00 2001 From: Asias He Date: Thu, 28 Jul 2016 15:36:34 +0100 -Subject: [PATCH 09/46] VSOCK: Introduce vhost_vsock.ko +Subject: [PATCH 09/42] VSOCK: Introduce vhost_vsock.ko VM sockets vhost transport implementation. This driver runs on the host. @@ -18,10 +18,10 @@ Signed-off-by: Michael S. Tsirkin create mode 100644 drivers/vhost/vsock.c diff --git a/MAINTAINERS b/MAINTAINERS -index c7e4c9a..fa94182 100644 +index 82d1123..12d49f5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -11405,6 +11405,8 @@ F: include/linux/virtio_vsock.h +@@ -11392,6 +11392,8 @@ F: include/linux/virtio_vsock.h F: include/uapi/linux/virtio_vsock.h F: net/vmw_vsock/virtio_transport_common.c F: net/vmw_vsock/virtio_transport.c @@ -773,5 +773,5 @@ index ab373191..b306476 100644 + #endif -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0010-VSOCK-Add-Makefile-and-Kconfig.patch b/alpine/kernel/patches/0010-VSOCK-Add-Makefile-and-Kconfig.patch index ecb5ba766..8c84c7879 100644 --- a/alpine/kernel/patches/0010-VSOCK-Add-Makefile-and-Kconfig.patch +++ b/alpine/kernel/patches/0010-VSOCK-Add-Makefile-and-Kconfig.patch @@ -1,7 +1,7 @@ -From 5600cbdcb09f2a322c696e37570d031932a3baa4 Mon Sep 17 00:00:00 2001 +From 30e1801c9e9683512a0cd169edf015923497dd70 Mon Sep 17 00:00:00 2001 From: Asias He Date: Thu, 28 Jul 2016 15:36:35 +0100 -Subject: [PATCH 10/46] VSOCK: Add Makefile and Kconfig +Subject: [PATCH 10/42] VSOCK: Add Makefile and Kconfig Enable virtio-vsock and vhost-vsock. @@ -102,5 +102,5 @@ index 2ce52d7..bc27c70 100644 + +vmw_vsock_virtio_transport_common-y += virtio_transport_common.o -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0011-VSOCK-Use-kvfree.patch b/alpine/kernel/patches/0011-VSOCK-Use-kvfree.patch index 8a13a250b..e1e78d9c8 100644 --- a/alpine/kernel/patches/0011-VSOCK-Use-kvfree.patch +++ b/alpine/kernel/patches/0011-VSOCK-Use-kvfree.patch @@ -1,7 +1,7 @@ -From d722f0d8acd78f91e079f2fe0b4e4a29b42435b7 Mon Sep 17 00:00:00 2001 +From e9a09f08525c736a71d8331fd6412a0ad19ee428 Mon Sep 17 00:00:00 2001 From: Wei Yongjun Date: Tue, 2 Aug 2016 13:50:42 +0000 -Subject: [PATCH 11/46] VSOCK: Use kvfree() +Subject: [PATCH 11/42] VSOCK: Use kvfree() Use kvfree() instead of open-coding it. @@ -29,5 +29,5 @@ index 028ca16..0ddf3a2 100644 static int vhost_vsock_dev_open(struct inode *inode, struct file *file) -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0012-vhost-vsock-fix-vhost-virtio_vsock_pkt-use-after-fre.patch b/alpine/kernel/patches/0012-vhost-vsock-fix-vhost-virtio_vsock_pkt-use-after-fre.patch index e54e75673..c522808e7 100644 --- a/alpine/kernel/patches/0012-vhost-vsock-fix-vhost-virtio_vsock_pkt-use-after-fre.patch +++ b/alpine/kernel/patches/0012-vhost-vsock-fix-vhost-virtio_vsock_pkt-use-after-fre.patch @@ -1,7 +1,7 @@ -From f2e2e9e439f717e454a1cf0e71e098b19ff0005d Mon Sep 17 00:00:00 2001 +From f886059ea8d0ac8ed981263d91d94275b85c50d5 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Thu, 4 Aug 2016 14:52:53 +0100 -Subject: [PATCH 12/46] vhost/vsock: fix vhost virtio_vsock_pkt use-after-free +Subject: [PATCH 12/42] vhost/vsock: fix vhost virtio_vsock_pkt use-after-free Stash the packet length in a local variable before handing over ownership of the packet to virtio_transport_recv_pkt() or @@ -49,5 +49,5 @@ index 0ddf3a2..e3b30ea 100644 } -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0013-virtio-vsock-fix-include-guard-typo.patch b/alpine/kernel/patches/0013-virtio-vsock-fix-include-guard-typo.patch index 1f858b3cc..aff3fc5c6 100644 --- a/alpine/kernel/patches/0013-virtio-vsock-fix-include-guard-typo.patch +++ b/alpine/kernel/patches/0013-virtio-vsock-fix-include-guard-typo.patch @@ -1,7 +1,7 @@ -From 1a8274f5f22a79f10aae3b4cf35f9b8a65f7f423 Mon Sep 17 00:00:00 2001 +From 6ded3ac18eabf23a790d6b6876119d8cd0538964 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Fri, 5 Aug 2016 13:52:09 +0100 -Subject: [PATCH 13/46] virtio-vsock: fix include guard typo +Subject: [PATCH 13/42] virtio-vsock: fix include guard typo Signed-off-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin @@ -24,5 +24,5 @@ index 6b011c1..1d57ed3 100644 #include #include -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0014-vhost-vsock-drop-space-available-check-for-TX-vq.patch b/alpine/kernel/patches/0014-vhost-vsock-drop-space-available-check-for-TX-vq.patch index c8c5b4b00..cb1f6e165 100644 --- a/alpine/kernel/patches/0014-vhost-vsock-drop-space-available-check-for-TX-vq.patch +++ b/alpine/kernel/patches/0014-vhost-vsock-drop-space-available-check-for-TX-vq.patch @@ -1,7 +1,7 @@ -From 5377a4a3e61adb924efdb4ff47ca2213c63e5bc4 Mon Sep 17 00:00:00 2001 +From 5fcd2673fadd46b0d2d5f896281113cd67a2efa7 Mon Sep 17 00:00:00 2001 From: Gerard Garcia Date: Wed, 10 Aug 2016 17:24:34 +0200 -Subject: [PATCH 14/46] vhost/vsock: drop space available check for TX vq +Subject: [PATCH 14/42] vhost/vsock: drop space available check for TX vq Remove unnecessary use of enable/disable callback notifications and the incorrect more space available check. @@ -57,5 +57,5 @@ index 699dfab..936d7ee 100644 } -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0015-VSOCK-Only-allow-host-network-namespace-to-use-AF_VS.patch b/alpine/kernel/patches/0015-VSOCK-Only-allow-host-network-namespace-to-use-AF_VS.patch index 5beaa076d..cc76287a8 100644 --- a/alpine/kernel/patches/0015-VSOCK-Only-allow-host-network-namespace-to-use-AF_VS.patch +++ b/alpine/kernel/patches/0015-VSOCK-Only-allow-host-network-namespace-to-use-AF_VS.patch @@ -1,7 +1,7 @@ -From fc2bc563ce2a5205b7504c39e8dbb0a5db2d63e9 Mon Sep 17 00:00:00 2001 +From 8719b508f509c06a7821d6f8e2fc1fcad84d6fbb Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Mon, 4 Apr 2016 14:50:10 +0100 -Subject: [PATCH 15/46] VSOCK: Only allow host network namespace to use +Subject: [PATCH 15/42] VSOCK: Only allow host network namespace to use AF_VSOCK. The VSOCK addressing schema does not really lend itself to simply creating an @@ -27,5 +27,5 @@ index 17dbbe6..1bb1b01 100644 return -EINVAL; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0016-drivers-hv-Define-the-channel-type-for-Hyper-V-PCI-E.patch b/alpine/kernel/patches/0016-drivers-hv-Define-the-channel-type-for-Hyper-V-PCI-E.patch index d249b435a..4b5bf9751 100644 --- a/alpine/kernel/patches/0016-drivers-hv-Define-the-channel-type-for-Hyper-V-PCI-E.patch +++ b/alpine/kernel/patches/0016-drivers-hv-Define-the-channel-type-for-Hyper-V-PCI-E.patch @@ -1,7 +1,7 @@ -From 7c37cbd1fd8bff6d8373cff4d7e1c33fcb2aa653 Mon Sep 17 00:00:00 2001 +From 84e1e7a4981f6ef926bb01481445def66e0982b2 Mon Sep 17 00:00:00 2001 From: Jake Oshins Date: Mon, 14 Dec 2015 16:01:41 -0800 -Subject: [PATCH 16/46] drivers:hv: Define the channel type for Hyper-V PCI +Subject: [PATCH 16/42] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through This defines the channel type for PCI front-ends in Hyper-V VMs. @@ -16,10 +16,10 @@ Signed-off-by: Greg Kroah-Hartman 2 files changed, 14 insertions(+) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index 652afd1..a77646b 100644 +index 37238df..a562318 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -358,6 +358,7 @@ enum { +@@ -359,6 +359,7 @@ enum { SCSI, NIC, ND_NIC, @@ -27,7 +27,7 @@ index 652afd1..a77646b 100644 MAX_PERF_CHN, }; -@@ -375,6 +376,8 @@ static const struct hv_vmbus_device_id hp_devs[] = { +@@ -376,6 +377,8 @@ static const struct hv_vmbus_device_id hp_devs[] = { { HV_NIC_GUID, }, /* NetworkDirect Guest RDMA */ { HV_ND_GUID, }, @@ -59,5 +59,5 @@ index ae6a711..10dda1e 100644 */ -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0017-Drivers-hv-vmbus-Use-uuid_le-type-consistently.patch b/alpine/kernel/patches/0017-Drivers-hv-vmbus-Use-uuid_le-type-consistently.patch index 67ed80b3c..623cc37ff 100644 --- a/alpine/kernel/patches/0017-Drivers-hv-vmbus-Use-uuid_le-type-consistently.patch +++ b/alpine/kernel/patches/0017-Drivers-hv-vmbus-Use-uuid_le-type-consistently.patch @@ -1,7 +1,7 @@ -From b26f3791593f6645c4e0e11fd93db7e47390fab6 Mon Sep 17 00:00:00 2001 +From 12fbf6bcf859c7ce33766ae450dc291d0b857197 Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Mon, 14 Dec 2015 16:01:43 -0800 -Subject: [PATCH 17/46] Drivers: hv: vmbus: Use uuid_le type consistently +Subject: [PATCH 17/42] Drivers: hv: vmbus: Use uuid_le type consistently Consistently use uuid_le type in the Hyper-V driver code. @@ -17,10 +17,10 @@ Signed-off-by: Greg Kroah-Hartman 5 files changed, 40 insertions(+), 68 deletions(-) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index a77646b..38470aa 100644 +index a562318..339277b 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -408,7 +408,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 struct cpumask *alloced_mask; for (i = IDE; i < MAX_PERF_CHN; i++) { @@ -30,10 +30,10 @@ index a77646b..38470aa 100644 perf_chn = true; break; diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index 9b5440f..9aadcc2 100644 +index 509ed97..6ce2bf8 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c -@@ -532,7 +532,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) static const uuid_le null_guid; @@ -42,7 +42,7 @@ index 9b5440f..9aadcc2 100644 { if (memcmp(guid, &null_guid, sizeof(uuid_le))) return false; -@@ -545,9 +545,9 @@ static inline bool is_null_guid(const __u8 *guid) +@@ -546,9 +546,9 @@ static inline bool is_null_guid(const __u8 *guid) */ static const struct hv_vmbus_device_id *hv_vmbus_get_id( const struct hv_vmbus_device_id *id, @@ -54,7 +54,7 @@ index 9b5440f..9aadcc2 100644 if (!memcmp(&id->guid, guid, sizeof(uuid_le))) return id; -@@ -564,7 +564,7 @@ static int vmbus_match(struct device *device, struct device_driver *driver) +@@ -565,7 +565,7 @@ static int vmbus_match(struct device *device, struct device_driver *driver) struct hv_driver *drv = drv_to_hv_drv(driver); struct hv_device *hv_dev = device_to_hv_device(device); @@ -63,7 +63,7 @@ index 9b5440f..9aadcc2 100644 return 1; return 0; -@@ -581,7 +581,7 @@ static int vmbus_probe(struct device *child_device) +@@ -582,7 +582,7 @@ static int vmbus_probe(struct device *child_device) struct hv_device *dev = device_to_hv_device(child_device); const struct hv_vmbus_device_id *dev_id; @@ -293,5 +293,5 @@ index 9f5cdd4..8e8c69b 100644 strcpy(alias, "vmbus:"); strcat(alias, guid_name); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0018-Drivers-hv-vmbus-Use-uuid_le_cmp-for-comparing-GUIDs.patch b/alpine/kernel/patches/0018-Drivers-hv-vmbus-Use-uuid_le_cmp-for-comparing-GUIDs.patch index 3da4267d0..fee2b87dd 100644 --- a/alpine/kernel/patches/0018-Drivers-hv-vmbus-Use-uuid_le_cmp-for-comparing-GUIDs.patch +++ b/alpine/kernel/patches/0018-Drivers-hv-vmbus-Use-uuid_le_cmp-for-comparing-GUIDs.patch @@ -1,7 +1,7 @@ -From 9ae0af317c2a085434b46197a663165895decaf6 Mon Sep 17 00:00:00 2001 +From 01a403dce6afb34dd0430e12d93b7acd5f384439 Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Mon, 14 Dec 2015 16:01:44 -0800 -Subject: [PATCH 18/46] Drivers: hv: vmbus: Use uuid_le_cmp() for comparing +Subject: [PATCH 18/42] Drivers: hv: vmbus: Use uuid_le_cmp() for comparing GUIDs Use uuid_le_cmp() for comparing GUIDs. @@ -15,10 +15,10 @@ Signed-off-by: Greg Kroah-Hartman 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index 38470aa..dc4fb0b 100644 +index 339277b..9b4525c 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -408,8 +408,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 struct cpumask *alloced_mask; for (i = IDE; i < MAX_PERF_CHN; i++) { @@ -29,10 +29,10 @@ index 38470aa..dc4fb0b 100644 break; } diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index 9aadcc2..bf54455 100644 +index 6ce2bf8..7973aa5 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c -@@ -534,7 +534,7 @@ static const uuid_le null_guid; +@@ -535,7 +535,7 @@ static const uuid_le null_guid; static inline bool is_null_guid(const uuid_le *guid) { @@ -41,7 +41,7 @@ index 9aadcc2..bf54455 100644 return false; return true; } -@@ -548,7 +548,7 @@ static const struct hv_vmbus_device_id *hv_vmbus_get_id( +@@ -549,7 +549,7 @@ static const struct hv_vmbus_device_id *hv_vmbus_get_id( const uuid_le *guid) { for (; !is_null_guid(&id->guid); id++) @@ -51,5 +51,5 @@ index 9aadcc2..bf54455 100644 return NULL; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0020-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch b/alpine/kernel/patches/0019-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch similarity index 88% rename from alpine/kernel/patches/0020-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch rename to alpine/kernel/patches/0019-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch index 4ed003690..6b228bce5 100644 --- a/alpine/kernel/patches/0020-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch +++ b/alpine/kernel/patches/0019-Drivers-hv-vmbus-do-sanity-check-of-channel-state-in.patch @@ -1,7 +1,7 @@ -From 8bba0d5b705be1f1d0bdfe7fa8465042fa936c3c Mon Sep 17 00:00:00 2001 +From a9c4320f47b5a2d2ef7600c5f61f3d4256de2ba5 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 14 Dec 2015 16:01:48 -0800 -Subject: [PATCH 20/46] Drivers: hv: vmbus: do sanity check of channel state in +Subject: [PATCH 19/42] Drivers: hv: vmbus: do sanity check of channel state in vmbus_close_internal() This fixes an incorrect assumption of channel state in the function. @@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman 1 file changed, 12 insertions(+) diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c -index 6a90c69..b3c14ca 100644 +index 1ef37c7..2889d97 100644 --- a/drivers/hv/channel.c +++ b/drivers/hv/channel.c @@ -512,6 +512,18 @@ static int vmbus_close_internal(struct vmbus_channel *channel) @@ -38,5 +38,5 @@ index 6a90c69..b3c14ca 100644 channel->sc_creation_callback = NULL; /* Stop callback and cancel the timer asap */ -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0019-Drivers-hv-vmbus-serialize-process_chn_event-and-vmb.patch b/alpine/kernel/patches/0019-Drivers-hv-vmbus-serialize-process_chn_event-and-vmb.patch deleted file mode 100644 index 7b19e429d..000000000 --- a/alpine/kernel/patches/0019-Drivers-hv-vmbus-serialize-process_chn_event-and-vmb.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 5c3a0d077f4c0ecd17117c04b0b6fef7e8acbdea Mon Sep 17 00:00:00 2001 -From: Dexuan Cui -Date: Mon, 14 Dec 2015 16:01:47 -0800 -Subject: [PATCH 19/46] Drivers: hv: vmbus: serialize process_chn_event() and - vmbus_close_internal() - -process_chn_event(), running in the tasklet, can race with -vmbus_close_internal() in the case of SMP guest, e.g., when the former is -accessing channel->inbound.ring_buffer, the latter could be freeing the -ring_buffer pages. - -To resolve the race, we can serialize them by disabling the tasklet when -the latter is running here. - -Signed-off-by: Dexuan Cui -Signed-off-by: K. Y. Srinivasan -Signed-off-by: Greg Kroah-Hartman -(cherry picked from commit 63d55b2aeb5e4faa170316fee73c3c47ea9268c7) ---- - drivers/hv/channel.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c -index 9098f13..6a90c69 100644 ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - #include "hyperv_vmbus.h" - -@@ -496,8 +497,21 @@ static void reset_channel_cb(void *arg) - static int vmbus_close_internal(struct vmbus_channel *channel) - { - struct vmbus_channel_close_channel *msg; -+ struct tasklet_struct *tasklet; - int ret; - -+ /* -+ * process_chn_event(), running in the tasklet, can race -+ * with vmbus_close_internal() in the case of SMP guest, e.g., when -+ * the former is accessing channel->inbound.ring_buffer, the latter -+ * could be freeing the ring_buffer pages. -+ * -+ * To resolve the race, we can serialize them by disabling the -+ * tasklet when the latter is running here. -+ */ -+ tasklet = hv_context.event_dpc[channel->target_cpu]; -+ tasklet_disable(tasklet); -+ - channel->state = CHANNEL_OPEN_STATE; - channel->sc_creation_callback = NULL; - /* Stop callback and cancel the timer asap */ -@@ -525,7 +539,7 @@ static int vmbus_close_internal(struct vmbus_channel *channel) - * If we failed to post the close msg, - * it is perhaps better to leak memory. - */ -- return ret; -+ goto out; - } - - /* Tear down the gpadl for the channel's ring buffer */ -@@ -538,7 +552,7 @@ static int vmbus_close_internal(struct vmbus_channel *channel) - * If we failed to teardown gpadl, - * it is perhaps better to leak memory. - */ -- return ret; -+ goto out; - } - } - -@@ -555,6 +569,9 @@ static int vmbus_close_internal(struct vmbus_channel *channel) - if (channel->rescind) - hv_process_channel_removal(channel, - channel->offermsg.child_relid); -+out: -+ tasklet_enable(tasklet); -+ - return ret; - } - --- -2.9.3 - diff --git a/alpine/kernel/patches/0022-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch b/alpine/kernel/patches/0020-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch similarity index 84% rename from alpine/kernel/patches/0022-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch rename to alpine/kernel/patches/0020-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch index 79deac9fe..338568fb4 100644 --- a/alpine/kernel/patches/0022-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch +++ b/alpine/kernel/patches/0020-Drivers-hv-vmbus-release-relid-on-error-in-vmbus_pro.patch @@ -1,7 +1,7 @@ -From 667defbc25ef5dcfa89b60c0bd534d5a27f8c116 Mon Sep 17 00:00:00 2001 +From b92976804d10f78b9a50f5d8f62f3663a44f32e6 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 14 Dec 2015 16:01:50 -0800 -Subject: [PATCH 22/46] Drivers: hv: vmbus: release relid on error in +Subject: [PATCH 20/42] Drivers: hv: vmbus: release relid on error in vmbus_process_offer() We want to simplify vmbus_onoffer_rescind() by not invoking @@ -16,10 +16,10 @@ Signed-off-by: Greg Kroah-Hartman 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index 7903acc..9c9da3a 100644 +index 9b4525c..8529dd2 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -177,19 +177,22 @@ static void percpu_channel_deq(void *arg) +@@ -178,19 +178,22 @@ static void percpu_channel_deq(void *arg) } @@ -47,7 +47,7 @@ index 7903acc..9c9da3a 100644 BUG_ON(!channel->rescind); -@@ -336,6 +339,8 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -337,6 +340,8 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) return; err_deq_chan: @@ -56,7 +56,7 @@ index 7903acc..9c9da3a 100644 spin_lock_irqsave(&vmbus_connection.channel_lock, flags); list_del(&newchannel->listentry); spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags); -@@ -587,7 +592,11 @@ static void vmbus_onoffer_rescind(struct vmbus_channel_message_header *hdr) +@@ -640,7 +645,11 @@ static void vmbus_onoffer_rescind(struct vmbus_channel_message_header *hdr) channel = relid2channel(rescind->child_relid); if (channel == NULL) { @@ -70,5 +70,5 @@ index 7903acc..9c9da3a 100644 } -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0023-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch b/alpine/kernel/patches/0021-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch similarity index 87% rename from alpine/kernel/patches/0023-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch rename to alpine/kernel/patches/0021-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch index a802c9959..f2a28b416 100644 --- a/alpine/kernel/patches/0023-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch +++ b/alpine/kernel/patches/0021-Drivers-hv-vmbus-channge-vmbus_connection.channel_lo.patch @@ -1,7 +1,7 @@ -From 235e2935d2d0700ac21db0cb0d6a64d6f9ff09fa Mon Sep 17 00:00:00 2001 +From e34354b98924dba0128289e722bde4ca35eafa90 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 14 Dec 2015 16:01:51 -0800 -Subject: [PATCH 23/46] Drivers: hv: vmbus: channge +Subject: [PATCH 21/42] Drivers: hv: vmbus: channge vmbus_connection.channel_lock to mutex spinlock is unnecessary here. @@ -18,10 +18,10 @@ Signed-off-by: Greg Kroah-Hartman 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index 9c9da3a..d013171 100644 +index 8529dd2..306c7df 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -206,9 +206,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) } if (channel->primary_channel == NULL) { @@ -33,7 +33,7 @@ index 9c9da3a..d013171 100644 primary_channel = channel; } else { -@@ -253,7 +253,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -254,7 +254,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) unsigned long flags; /* Make sure this is a new offer */ @@ -42,7 +42,7 @@ index 9c9da3a..d013171 100644 list_for_each_entry(channel, &vmbus_connection.chn_list, listentry) { if (!uuid_le_cmp(channel->offermsg.offer.if_type, -@@ -269,7 +269,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -270,7 +270,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) list_add_tail(&newchannel->listentry, &vmbus_connection.chn_list); @@ -51,7 +51,7 @@ index 9c9da3a..d013171 100644 if (!fnew) { /* -@@ -341,9 +341,9 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -342,9 +342,9 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) err_deq_chan: vmbus_release_relid(newchannel->offermsg.child_relid); @@ -99,10 +99,10 @@ index 4fc2e88..521f48e 100644 return found_channel; } diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h -index 3782636..d9937be 100644 +index 12156db..50b1de7 100644 --- a/drivers/hv/hyperv_vmbus.h +++ b/drivers/hv/hyperv_vmbus.h -@@ -678,7 +678,7 @@ struct vmbus_connection { +@@ -683,7 +683,7 @@ struct vmbus_connection { /* List of channels */ struct list_head chn_list; @@ -112,5 +112,5 @@ index 3782636..d9937be 100644 struct workqueue_struct *work_queue; }; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0021-Drivers-hv-vmbus-fix-rescind-offer-handling-for-devi.patch b/alpine/kernel/patches/0021-Drivers-hv-vmbus-fix-rescind-offer-handling-for-devi.patch deleted file mode 100644 index a65a6e127..000000000 --- a/alpine/kernel/patches/0021-Drivers-hv-vmbus-fix-rescind-offer-handling-for-devi.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 4185d167c4c6db493a3e96e59689e32562761563 Mon Sep 17 00:00:00 2001 -From: Dexuan Cui -Date: Mon, 14 Dec 2015 16:01:49 -0800 -Subject: [PATCH 21/46] Drivers: hv: vmbus: fix rescind-offer handling for - device without a driver - -In the path vmbus_onoffer_rescind() -> vmbus_device_unregister() -> -device_unregister() -> ... -> __device_release_driver(), we can see for a -device without a driver loaded: dev->driver is NULL, so -dev->bus->remove(dev), namely vmbus_remove(), isn't invoked. - -As a result, vmbus_remove() -> hv_process_channel_removal() isn't invoked -and some cleanups(like sending a CHANNELMSG_RELID_RELEASED message to the -host) aren't done. - -We can demo the issue this way: -1. rmmod hv_utils; -2. disable the Heartbeat Integration Service in Hyper-V Manager and lsvmbus -shows the device disappears. -3. re-enable the Heartbeat in Hyper-V Manager and modprobe hv_utils, but -lsvmbus shows the device can't appear again. -This is because, the host thinks the VM hasn't released the relid, so can't -re-offer the device to the VM. - -We can fix the issue by moving hv_process_channel_removal() -from vmbus_close_internal() to vmbus_device_release(), since the latter is -always invoked on device_unregister(), whether or not the dev has a driver -loaded. - -Signed-off-by: Dexuan Cui -Signed-off-by: K. Y. Srinivasan -Signed-off-by: Greg Kroah-Hartman -(cherry picked from commit 34c6801e3310ad286c7bb42bc88d42926b8f99bf) ---- - drivers/hv/channel.c | 6 ------ - drivers/hv/channel_mgmt.c | 6 +++--- - drivers/hv/vmbus_drv.c | 15 +++------------ - 3 files changed, 6 insertions(+), 21 deletions(-) - -diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c -index b3c14ca..2889d97 100644 ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -575,12 +575,6 @@ static int vmbus_close_internal(struct vmbus_channel *channel) - free_pages((unsigned long)channel->ringbuffer_pages, - get_order(channel->ringbuffer_pagecount * PAGE_SIZE)); - -- /* -- * If the channel has been rescinded; process device removal. -- */ -- if (channel->rescind) -- hv_process_channel_removal(channel, -- channel->offermsg.child_relid); - out: - tasklet_enable(tasklet); - -diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index dc4fb0b..7903acc 100644 ---- a/drivers/hv/channel_mgmt.c -+++ b/drivers/hv/channel_mgmt.c -@@ -191,6 +191,8 @@ void hv_process_channel_removal(struct vmbus_channel *channel, u32 relid) - if (channel == NULL) - return; - -+ BUG_ON(!channel->rescind); -+ - if (channel->target_cpu != get_cpu()) { - put_cpu(); - smp_call_function_single(channel->target_cpu, -@@ -230,9 +232,7 @@ void vmbus_free_channels(void) - - list_for_each_entry_safe(channel, tmp, &vmbus_connection.chn_list, - listentry) { -- /* if we don't set rescind to true, vmbus_close_internal() -- * won't invoke hv_process_channel_removal(). -- */ -+ /* hv_process_channel_removal() needs this */ - channel->rescind = true; - - vmbus_device_unregister(channel->device_obj); -diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index bf54455..8bf1f31 100644 ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -603,23 +603,11 @@ static int vmbus_remove(struct device *child_device) - { - struct hv_driver *drv; - struct hv_device *dev = device_to_hv_device(child_device); -- u32 relid = dev->channel->offermsg.child_relid; - - if (child_device->driver) { - drv = drv_to_hv_drv(child_device->driver); - if (drv->remove) - drv->remove(dev); -- else { -- hv_process_channel_removal(dev->channel, relid); -- pr_err("remove not set for driver %s\n", -- dev_name(child_device)); -- } -- } else { -- /* -- * We don't have a driver for this device; deal with the -- * rescind message by removing the channel. -- */ -- hv_process_channel_removal(dev->channel, relid); - } - - return 0; -@@ -654,7 +642,10 @@ static void vmbus_shutdown(struct device *child_device) - static void vmbus_device_release(struct device *device) - { - struct hv_device *hv_dev = device_to_hv_device(device); -+ struct vmbus_channel *channel = hv_dev->channel; - -+ hv_process_channel_removal(channel, -+ channel->offermsg.child_relid); - kfree(hv_dev); - - } --- -2.9.3 - diff --git a/alpine/kernel/patches/0024-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch b/alpine/kernel/patches/0022-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch similarity index 96% rename from alpine/kernel/patches/0024-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch rename to alpine/kernel/patches/0022-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch index 501fc0393..c993989dc 100644 --- a/alpine/kernel/patches/0024-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch +++ b/alpine/kernel/patches/0022-Drivers-hv-remove-code-duplication-between-vmbus_rec.patch @@ -1,7 +1,7 @@ -From d6cc8615d22926bb1e2d8ba85fd391df9f1cf089 Mon Sep 17 00:00:00 2001 +From 91a65c691fc22cc6bfb884dea29cc7c5c3e5f9a9 Mon Sep 17 00:00:00 2001 From: Vitaly Kuznetsov Date: Mon, 14 Dec 2015 19:02:00 -0800 -Subject: [PATCH 24/46] Drivers: hv: remove code duplication between +Subject: [PATCH 22/42] Drivers: hv: remove code duplication between vmbus_recvpacket()/vmbus_recvpacket_raw() vmbus_recvpacket() and vmbus_recvpacket_raw() are almost identical but @@ -122,5 +122,5 @@ index 2889d97..dd6de7f 100644 } EXPORT_SYMBOL_GPL(vmbus_recvpacket_raw); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0025-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch b/alpine/kernel/patches/0023-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch similarity index 94% rename from alpine/kernel/patches/0025-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch rename to alpine/kernel/patches/0023-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch index 4cc594162..a52582000 100644 --- a/alpine/kernel/patches/0025-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch +++ b/alpine/kernel/patches/0023-Drivers-hv-vmbus-fix-the-building-warning-with-hyper.patch @@ -1,7 +1,7 @@ -From 64c112c50e6a404431f5adc7685915cd9b5e8d42 Mon Sep 17 00:00:00 2001 +From 4c754b011766c2d8a99424637656ea8096d55890 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 21 Dec 2015 12:21:22 -0800 -Subject: [PATCH 25/46] Drivers: hv: vmbus: fix the building warning with +Subject: [PATCH 23/42] Drivers: hv: vmbus: fix the building warning with hyperv-keyboard With the recent change af3ff643ea91ba64dd8d0b1cbed54d44512f96cd @@ -68,5 +68,5 @@ index 4712d7d..9e2de6a 100644 */ #define HV_VSS_GUID \ -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0026-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch b/alpine/kernel/patches/0024-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch similarity index 78% rename from alpine/kernel/patches/0026-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch rename to alpine/kernel/patches/0024-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch index 53c5d83e7..14c287bd4 100644 --- a/alpine/kernel/patches/0026-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch +++ b/alpine/kernel/patches/0024-Drivers-hv-vmbus-Treat-Fibre-Channel-devices-as-perf.patch @@ -1,7 +1,7 @@ -From 6ee99ea70b9975b03c436c05a55c154bed392a94 Mon Sep 17 00:00:00 2001 +From 6cb1a2f24c7b049f8a0c259afa4f5de37ac84084 Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Tue, 15 Dec 2015 16:27:27 -0800 -Subject: [PATCH 26/46] Drivers: hv: vmbus: Treat Fibre Channel devices as +Subject: [PATCH 24/42] Drivers: hv: vmbus: Treat Fibre Channel devices as performance critical For performance critical devices, we distribute the incoming @@ -17,10 +17,10 @@ Signed-off-by: Greg Kroah-Hartman 1 file changed, 3 insertions(+) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index d013171..1c1ad47 100644 +index 306c7df..763d0c1 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -361,6 +361,7 @@ err_free_chan: +@@ -362,6 +362,7 @@ err_free_chan: enum { IDE = 0, SCSI, @@ -28,7 +28,7 @@ index d013171..1c1ad47 100644 NIC, ND_NIC, PCIE, -@@ -377,6 +378,8 @@ static const struct hv_vmbus_device_id hp_devs[] = { +@@ -378,6 +379,8 @@ static const struct hv_vmbus_device_id hp_devs[] = { { HV_IDE_GUID, }, /* Storage - SCSI */ { HV_SCSI_GUID, }, @@ -38,5 +38,5 @@ index d013171..1c1ad47 100644 { HV_NIC_GUID, }, /* NetworkDirect Guest RDMA */ -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0027-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch b/alpine/kernel/patches/0025-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch similarity index 92% rename from alpine/kernel/patches/0027-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch rename to alpine/kernel/patches/0025-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch index f8ff33ff7..2e89c4ea2 100644 --- a/alpine/kernel/patches/0027-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch +++ b/alpine/kernel/patches/0025-Drivers-hv-vmbus-Add-vendor-and-device-atttributes.patch @@ -1,7 +1,7 @@ -From 5131dc31aecd376785b71bb3bb16bf70573682b3 Mon Sep 17 00:00:00 2001 +From 69933a7f325a93afbb5ed819388b8b063d602066 Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Fri, 25 Dec 2015 20:00:30 -0800 -Subject: [PATCH 27/46] Drivers: hv: vmbus: Add vendor and device atttributes +Subject: [PATCH 25/42] Drivers: hv: vmbus: Add vendor and device atttributes Add vendor and device attributes to VMBUS devices. These will be used by Hyper-V tools as well user-level RDMA libraries that will use the @@ -40,10 +40,10 @@ index 636e938..5d0125f 100644 +Description: The 16 bit vendor ID of the device +Users: tools/hv/lsvmbus and user level RDMA libraries diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index 1c1ad47..107d72f 100644 +index 763d0c1..d6c6114 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c -@@ -32,8 +32,122 @@ +@@ -33,8 +33,122 @@ #include "hyperv_vmbus.h" @@ -168,7 +168,7 @@ index 1c1ad47..107d72f 100644 /** * vmbus_prep_negotiate_resp() - Create default response for Hyper-V Negotiate message -@@ -251,6 +365,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -252,6 +366,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) struct vmbus_channel *channel; bool fnew = true; unsigned long flags; @@ -176,7 +176,7 @@ index 1c1ad47..107d72f 100644 /* Make sure this is a new offer */ mutex_lock(&vmbus_connection.channel_mutex); -@@ -288,7 +403,9 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -289,7 +404,9 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) goto err_free_chan; } @@ -187,7 +187,7 @@ index 1c1ad47..107d72f 100644 if (newchannel->target_cpu != get_cpu()) { put_cpu(); -@@ -325,6 +442,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) +@@ -326,6 +443,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) if (!newchannel->device_obj) goto err_deq_chan; @@ -195,7 +195,7 @@ index 1c1ad47..107d72f 100644 /* * Add the new device to the bus. This will kick off device-driver * binding which eventually invokes the device driver's AddDevice() -@@ -358,37 +476,6 @@ err_free_chan: +@@ -359,37 +477,6 @@ err_free_chan: free_channel(newchannel); } @@ -233,7 +233,7 @@ index 1c1ad47..107d72f 100644 /* * We use this state to statically distribute the channel interrupt load. */ -@@ -405,22 +492,15 @@ static int next_numa_node_id; +@@ -406,22 +493,15 @@ static int next_numa_node_id; * For pre-win8 hosts or non-performance critical channels we assign the * first CPU in the first NUMA node. */ @@ -259,10 +259,10 @@ index 1c1ad47..107d72f 100644 (vmbus_proto_version == VERSION_WIN7) || (!perf_chn)) { /* diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index 8bf1f31..959b656 100644 +index 7973aa5..de7130c 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c -@@ -479,6 +479,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, } static DEVICE_ATTR_RO(channel_vp_mapping); @@ -287,7 +287,7 @@ index 8bf1f31..959b656 100644 /* Set up per device attributes in /sys/bus/vmbus/devices/ */ static struct attribute *vmbus_attrs[] = { &dev_attr_id.attr, -@@ -504,6 +522,8 @@ static struct attribute *vmbus_attrs[] = { +@@ -505,6 +523,8 @@ static struct attribute *vmbus_attrs[] = { &dev_attr_in_read_bytes_avail.attr, &dev_attr_in_write_bytes_avail.attr, &dev_attr_channel_vp_mapping.attr, @@ -296,7 +296,7 @@ index 8bf1f31..959b656 100644 NULL, }; ATTRIBUTE_GROUPS(vmbus); -@@ -960,6 +980,7 @@ struct hv_device *vmbus_device_create(const uuid_le *type, +@@ -963,6 +983,7 @@ struct hv_device *vmbus_device_create(const uuid_le *type, memcpy(&child_device_obj->dev_type, type, sizeof(uuid_le)); memcpy(&child_device_obj->dev_instance, instance, sizeof(uuid_le)); @@ -351,5 +351,5 @@ index 9e2de6a..51c98fd 100644 struct device device; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0030-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch b/alpine/kernel/patches/0026-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch similarity index 87% rename from alpine/kernel/patches/0030-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch rename to alpine/kernel/patches/0026-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch index 2923f53f7..46095d238 100644 --- a/alpine/kernel/patches/0030-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch +++ b/alpine/kernel/patches/0026-Drivers-hv-vmbus-add-a-helper-function-to-set-a-chan.patch @@ -1,7 +1,7 @@ -From 1686f700609459bc6cf9d4597a8a39bf5f133409 Mon Sep 17 00:00:00 2001 +From 64f93cfc49018e7ffa772506cfe3631b3db530b9 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:37 -0800 -Subject: [PATCH 30/46] Drivers: hv: vmbus: add a helper function to set a +Subject: [PATCH 26/42] Drivers: hv: vmbus: add a helper function to set a channel's pending send size This will be used by the coming net/hvsock driver. @@ -32,5 +32,5 @@ index 51c98fd..934542a 100644 int vmbus_request_offers(void); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0031-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch b/alpine/kernel/patches/0027-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch similarity index 90% rename from alpine/kernel/patches/0031-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch rename to alpine/kernel/patches/0027-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch index f0b00c742..375a62ae1 100644 --- a/alpine/kernel/patches/0031-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch +++ b/alpine/kernel/patches/0027-Drivers-hv-vmbus-define-the-new-offer-type-for-Hyper.patch @@ -1,7 +1,7 @@ -From f22a67d17cb1f357da61258ee181729bcf0af3b1 Mon Sep 17 00:00:00 2001 +From 8658862991789c9dca080be3d35a7e72479b91e9 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:38 -0800 -Subject: [PATCH 31/46] Drivers: hv: vmbus: define the new offer type for +Subject: [PATCH 27/42] Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock) A helper function is also added. @@ -40,5 +40,5 @@ index 934542a..a4f105d 100644 enum hv_signal_policy policy) { -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0028-Drivers-hv-vmbus-avoid-infinite-loop-in-init_vp_inde.patch b/alpine/kernel/patches/0028-Drivers-hv-vmbus-avoid-infinite-loop-in-init_vp_inde.patch deleted file mode 100644 index 9a707241c..000000000 --- a/alpine/kernel/patches/0028-Drivers-hv-vmbus-avoid-infinite-loop-in-init_vp_inde.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 2dd3d37c7e1a4ce1adeb2a4af3df878907d44ebe Mon Sep 17 00:00:00 2001 -From: Vitaly Kuznetsov -Date: Wed, 27 Jan 2016 22:29:34 -0800 -Subject: [PATCH 28/46] Drivers: hv: vmbus: avoid infinite loop in - init_vp_index() - -When we pick a CPU to use for a new subchannel we try find a non-used one -on the appropriate NUMA node, we keep track of them with the -primary->alloced_cpus_in_node mask. Under normal circumstances we don't run -out of available CPUs but it is possible when we we don't initialize some -cpus in Linux, e.g. when we boot with 'nr_cpus=' limitation. - -Avoid the infinite loop in init_vp_index() by checking that we still have -non-used CPUs in the alloced_cpus_in_node mask and resetting it in case -we don't. - -Signed-off-by: Vitaly Kuznetsov -Signed-off-by: K. Y. Srinivasan -Signed-off-by: Greg Kroah-Hartman -(cherry picked from commit 79fd8e706637a5c7c41f9498fe0fbfb437abfdc8) ---- - drivers/hv/channel_mgmt.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index 107d72f..af1d82e 100644 ---- a/drivers/hv/channel_mgmt.c -+++ b/drivers/hv/channel_mgmt.c -@@ -549,6 +549,17 @@ static void init_vp_index(struct vmbus_channel *channel, u16 dev_type) - cpumask_of_node(primary->numa_node)); - - cur_cpu = -1; -+ -+ /* -+ * Normally Hyper-V host doesn't create more subchannels than there -+ * are VCPUs on the node but it is possible when not all present VCPUs -+ * on the node are initialized by guest. Clear the alloced_cpus_in_node -+ * to start over. -+ */ -+ if (cpumask_equal(&primary->alloced_cpus_in_node, -+ cpumask_of_node(primary->numa_node))) -+ cpumask_clear(&primary->alloced_cpus_in_node); -+ - while (true) { - cur_cpu = cpumask_next(cur_cpu, &available_mask); - if (cur_cpu >= nr_cpu_ids) { --- -2.9.3 - diff --git a/alpine/kernel/patches/0032-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch b/alpine/kernel/patches/0028-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch similarity index 91% rename from alpine/kernel/patches/0032-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch rename to alpine/kernel/patches/0028-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch index cbb2c68ff..7c93e72a1 100644 --- a/alpine/kernel/patches/0032-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch +++ b/alpine/kernel/patches/0028-Drivers-hv-vmbus-vmbus_sendpacket_ctl-hvsock-avoid-u.patch @@ -1,7 +1,7 @@ -From 6d465cc94028d9c3b7e36996b09e7c9d95b269f3 Mon Sep 17 00:00:00 2001 +From 60af2c3c5565e40ee66123edb9386ccaa1355dff Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:39 -0800 -Subject: [PATCH 32/46] Drivers: hv: vmbus: vmbus_sendpacket_ctl: hvsock: avoid +Subject: [PATCH 28/42] Drivers: hv: vmbus: vmbus_sendpacket_ctl: hvsock: avoid unnecessary signaling When the hvsock channel's outbound ringbuffer is full (i.e., @@ -41,5 +41,5 @@ index dd6de7f..128dcf2 100644 return ret; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0029-Drivers-hv-vmbus-avoid-scheduling-in-interrupt-conte.patch b/alpine/kernel/patches/0029-Drivers-hv-vmbus-avoid-scheduling-in-interrupt-conte.patch deleted file mode 100644 index 2ae3337ec..000000000 --- a/alpine/kernel/patches/0029-Drivers-hv-vmbus-avoid-scheduling-in-interrupt-conte.patch +++ /dev/null @@ -1,99 +0,0 @@ -From f478bef9bcd76c17c338c7c96422f22dad0d02e3 Mon Sep 17 00:00:00 2001 -From: Vitaly Kuznetsov -Date: Wed, 27 Jan 2016 22:29:35 -0800 -Subject: [PATCH 29/46] Drivers: hv: vmbus: avoid scheduling in interrupt - context in vmbus_initiate_unload() - -We have to call vmbus_initiate_unload() on crash to make kdump work but -the crash can also be happening in interrupt (e.g. Sysrq + c results in -such) where we can't schedule or the following will happen: - -[ 314.905786] bad: scheduling from the idle thread! - -Just skipping the wait (and even adding some random wait here) won't help: -to make host-side magic working we're supposed to receive CHANNELMSG_UNLOAD -(and actually confirm the fact that we received it) but we can't use -interrupt-base path (vmbus_isr()-> vmbus_on_msg_dpc()). Implement a simple -busy wait ignoring all the other messages and use it if we're in an -interrupt context. - -Signed-off-by: Vitaly Kuznetsov -Signed-off-by: K. Y. Srinivasan -Signed-off-by: Greg Kroah-Hartman -(cherry picked from commit 415719160de3fae3bb9cbc617664649919cd00d0) ---- - drivers/hv/channel_mgmt.c | 44 +++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 43 insertions(+), 1 deletion(-) - -diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c -index af1d82e..d6c6114 100644 ---- a/drivers/hv/channel_mgmt.c -+++ b/drivers/hv/channel_mgmt.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - - #include "hyperv_vmbus.h" -@@ -589,6 +590,40 @@ static void init_vp_index(struct vmbus_channel *channel, u16 dev_type) - channel->target_vp = hv_context.vp_index[cur_cpu]; - } - -+static void vmbus_wait_for_unload(void) -+{ -+ int cpu = smp_processor_id(); -+ void *page_addr = hv_context.synic_message_page[cpu]; -+ struct hv_message *msg = (struct hv_message *)page_addr + -+ VMBUS_MESSAGE_SINT; -+ struct vmbus_channel_message_header *hdr; -+ bool unloaded = false; -+ -+ while (1) { -+ if (msg->header.message_type == HVMSG_NONE) { -+ mdelay(10); -+ continue; -+ } -+ -+ hdr = (struct vmbus_channel_message_header *)msg->u.payload; -+ if (hdr->msgtype == CHANNELMSG_UNLOAD_RESPONSE) -+ unloaded = true; -+ -+ msg->header.message_type = HVMSG_NONE; -+ /* -+ * header.message_type needs to be written before we do -+ * wrmsrl() below. -+ */ -+ mb(); -+ -+ if (msg->header.message_flags.msg_pending) -+ wrmsrl(HV_X64_MSR_EOM, 0); -+ -+ if (unloaded) -+ break; -+ } -+} -+ - /* - * vmbus_unload_response - Handler for the unload response. - */ -@@ -614,7 +649,14 @@ void vmbus_initiate_unload(void) - hdr.msgtype = CHANNELMSG_UNLOAD; - vmbus_post_msg(&hdr, sizeof(struct vmbus_channel_message_header)); - -- wait_for_completion(&vmbus_connection.unload_event); -+ /* -+ * vmbus_initiate_unload() is also called on crash and the crash can be -+ * happening in an interrupt context, where scheduling is impossible. -+ */ -+ if (!in_interrupt()) -+ wait_for_completion(&vmbus_connection.unload_event); -+ else -+ vmbus_wait_for_unload(); - } - - /* --- -2.9.3 - diff --git a/alpine/kernel/patches/0033-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch b/alpine/kernel/patches/0029-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch similarity index 95% rename from alpine/kernel/patches/0033-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch rename to alpine/kernel/patches/0029-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch index b1f1f4562..fa317eec0 100644 --- a/alpine/kernel/patches/0033-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch +++ b/alpine/kernel/patches/0029-Drivers-hv-vmbus-define-a-new-VMBus-message-type-for.patch @@ -1,7 +1,7 @@ -From 7a337a1dcbdcb4c5ab22822f5cbf5b5fbe45551c Mon Sep 17 00:00:00 2001 +From 2c5183043209906ad0a41fb1a5b4d0c4c8a8e735 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:40 -0800 -Subject: [PATCH 33/46] Drivers: hv: vmbus: define a new VMBus message type for +Subject: [PATCH 29/42] Drivers: hv: vmbus: define a new VMBus message type for hvsock A function to send the type of message is also added. @@ -97,5 +97,5 @@ index a4f105d..191bc5d 100644 + const uuid_le *shv_host_servie_id); #endif /* _HYPERV_H */ -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0034-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch b/alpine/kernel/patches/0030-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch similarity index 90% rename from alpine/kernel/patches/0034-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch rename to alpine/kernel/patches/0030-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch index 0642ce2a7..f264f65dd 100644 --- a/alpine/kernel/patches/0034-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch +++ b/alpine/kernel/patches/0030-Drivers-hv-vmbus-add-a-hvsock-flag-in-struct-hv_driv.patch @@ -1,7 +1,7 @@ -From 6a067b8e07452ec14629bea5bfe0951877c27451 Mon Sep 17 00:00:00 2001 +From 58a10705d630bdcb5ea08c894d28851c73e9bd4f Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:41 -0800 -Subject: [PATCH 34/46] Drivers: hv: vmbus: add a hvsock flag in struct +Subject: [PATCH 30/42] Drivers: hv: vmbus: add a hvsock flag in struct hv_driver Only the coming hv_sock driver has a "true" value for this flag. @@ -20,10 +20,10 @@ Signed-off-by: Greg Kroah-Hartman 2 files changed, 18 insertions(+) diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index 959b656..d46b4ff 100644 +index de7130c..03fc5d3 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c -@@ -584,6 +584,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) struct hv_driver *drv = drv_to_hv_drv(driver); struct hv_device *hv_dev = device_to_hv_device(device); @@ -60,5 +60,5 @@ index 191bc5d..05966e2 100644 uuid_le dev_type; const struct hv_vmbus_device_id *id_table; -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0035-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch b/alpine/kernel/patches/0031-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch similarity index 94% rename from alpine/kernel/patches/0035-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch rename to alpine/kernel/patches/0031-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch index 7ba70125a..9768186ca 100644 --- a/alpine/kernel/patches/0035-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch +++ b/alpine/kernel/patches/0031-Drivers-hv-vmbus-add-a-per-channel-rescind-callback.patch @@ -1,7 +1,7 @@ -From e8bf64d13b450b3a224bd12779c38931e4a5691d Mon Sep 17 00:00:00 2001 +From 6dd9db116b0985dfc56b3028205549f4c52d8be0 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:42 -0800 -Subject: [PATCH 35/46] Drivers: hv: vmbus: add a per-channel rescind callback +Subject: [PATCH 31/42] Drivers: hv: vmbus: add a per-channel rescind callback This will be used by the coming hv_sock driver. @@ -68,5 +68,5 @@ index 05966e2..ad04017 100644 * Retrieve the (sub) channel on which to send an outgoing request. * When a primary channel has multiple sub-channels, we choose a -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0036-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch b/alpine/kernel/patches/0032-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch similarity index 97% rename from alpine/kernel/patches/0036-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch rename to alpine/kernel/patches/0032-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch index 0dc43d99d..cb9a4f99c 100644 --- a/alpine/kernel/patches/0036-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch +++ b/alpine/kernel/patches/0032-Drivers-hv-vmbus-add-an-API-vmbus_hvsock_device_unre.patch @@ -1,7 +1,7 @@ -From b27d9192ab78946005526ee9574bc971b69205a2 Mon Sep 17 00:00:00 2001 +From 5e89daa5e8c0b5950b46ba77dd6248c5e61bc405 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 27 Jan 2016 22:29:43 -0800 -Subject: [PATCH 36/46] Drivers: hv: vmbus: add an API +Subject: [PATCH 32/42] Drivers: hv: vmbus: add an API vmbus_hvsock_device_unregister() The hvsock driver needs this API to release all the resources related @@ -149,5 +149,5 @@ index ad04017..993318a 100644 resource_size_t min, resource_size_t max, resource_size_t size, resource_size_t align, -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0037-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch b/alpine/kernel/patches/0033-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch similarity index 96% rename from alpine/kernel/patches/0037-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch rename to alpine/kernel/patches/0033-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch index e36ff3198..fa351c53c 100644 --- a/alpine/kernel/patches/0037-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch +++ b/alpine/kernel/patches/0033-Drivers-hv-vmbus-Give-control-over-how-the-ring-acce.patch @@ -1,7 +1,7 @@ -From d5f89659d3c0c5e05c3a76c3cc1b84aa505bc06e Mon Sep 17 00:00:00 2001 +From b7e3c4ad47b7fd47a79a723ac0c1823b6782d1ff Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Wed, 27 Jan 2016 22:29:45 -0800 -Subject: [PATCH 37/46] Drivers: hv: vmbus: Give control over how the ring +Subject: [PATCH 33/42] Drivers: hv: vmbus: Give control over how the ring access is serialized On the channel send side, many of the VMBUS @@ -111,10 +111,10 @@ index cf311be..b40f429 100644 spin_lock_init(&channel->lock); diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h -index d9937be..b925fa3 100644 +index 50b1de7..89bb559 100644 --- a/drivers/hv/hyperv_vmbus.h +++ b/drivers/hv/hyperv_vmbus.h -@@ -612,7 +612,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); int hv_ringbuffer_write(struct hv_ring_buffer_info *ring_info, struct kvec *kv_list, @@ -204,5 +204,5 @@ index 993318a..6c9695e 100644 { return !!(c->offermsg.offer.chn_flags & -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0038-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch b/alpine/kernel/patches/0034-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch similarity index 89% rename from alpine/kernel/patches/0038-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch rename to alpine/kernel/patches/0034-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch index 28ee6214d..06b9acdea 100644 --- a/alpine/kernel/patches/0038-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch +++ b/alpine/kernel/patches/0034-Drivers-hv-vmbus-avoid-wait_for_completion-on-crash.patch @@ -1,7 +1,7 @@ -From f565fcc8decc0d57427b8506ea4b430de70440b1 Mon Sep 17 00:00:00 2001 +From af2dd29e3cf40c789045199893c232d57f0b7057 Mon Sep 17 00:00:00 2001 From: Vitaly Kuznetsov Date: Fri, 26 Feb 2016 15:13:16 -0800 -Subject: [PATCH 38/46] Drivers: hv: vmbus: avoid wait_for_completion() on +Subject: [PATCH 34/42] Drivers: hv: vmbus: avoid wait_for_completion() on crash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -61,10 +61,10 @@ index 09c08b5..78b8be8 100644 if (vmbus_connection.work_queue) { drain_workqueue(vmbus_connection.work_queue); diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h -index b925fa3..10efab0 100644 +index 89bb559..f424c2d 100644 --- a/drivers/hv/hyperv_vmbus.h +++ b/drivers/hv/hyperv_vmbus.h -@@ -751,7 +751,7 @@ void hv_vss_onchannelcallback(void *); +@@ -756,7 +756,7 @@ void hv_vss_onchannelcallback(void *); int hv_fcopy_init(struct hv_util_service *); void hv_fcopy_deinit(void); void hv_fcopy_onchannelcallback(void *); @@ -74,10 +74,10 @@ index b925fa3..10efab0 100644 static inline void hv_poll_channel(struct vmbus_channel *channel, void (*cb)(void *)) diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index d46b4ff..f5f57ee 100644 +index 03fc5d3..b0cc6fd 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c -@@ -1266,7 +1266,7 @@ static void hv_kexec_handler(void) +@@ -1276,7 +1276,7 @@ static void hv_kexec_handler(void) int cpu; hv_synic_clockevents_cleanup(); @@ -86,7 +86,7 @@ index d46b4ff..f5f57ee 100644 for_each_online_cpu(cpu) smp_call_function_single(cpu, hv_synic_cleanup, NULL, 1); hv_cleanup(); -@@ -1274,7 +1274,7 @@ static void hv_kexec_handler(void) +@@ -1284,7 +1284,7 @@ static void hv_kexec_handler(void) static void hv_crash_handler(struct pt_regs *regs) { @@ -96,5 +96,5 @@ index d46b4ff..f5f57ee 100644 * In crash handler we can't schedule synic cleanup for all CPUs, * doing the cleanup for current CPU only. This should be sufficient -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0039-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch b/alpine/kernel/patches/0035-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch similarity index 90% rename from alpine/kernel/patches/0039-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch rename to alpine/kernel/patches/0035-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch index b3f28682f..58ba9c17c 100644 --- a/alpine/kernel/patches/0039-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch +++ b/alpine/kernel/patches/0035-Drivers-hv-vmbus-avoid-unneeded-compiler-optimizatio.patch @@ -1,7 +1,7 @@ -From 0b4365983ef397e8b43f9f77e591c4c9f83fca26 Mon Sep 17 00:00:00 2001 +From fa3647ae889af3cccaaee37ac0723fc1b74689e3 Mon Sep 17 00:00:00 2001 From: Vitaly Kuznetsov Date: Fri, 26 Feb 2016 15:13:18 -0800 -Subject: [PATCH 39/46] Drivers: hv: vmbus: avoid unneeded compiler +Subject: [PATCH 35/42] Drivers: hv: vmbus: avoid unneeded compiler optimizations in vmbus_wait_for_unload() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -35,5 +35,5 @@ index f70e352..c892db5 100644 continue; } -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0040-kcm-Kernel-Connection-Multiplexor-module.patch b/alpine/kernel/patches/0036-kcm-Kernel-Connection-Multiplexor-module.patch similarity index 99% rename from alpine/kernel/patches/0040-kcm-Kernel-Connection-Multiplexor-module.patch rename to alpine/kernel/patches/0036-kcm-Kernel-Connection-Multiplexor-module.patch index b27b58471..9353d1e53 100644 --- a/alpine/kernel/patches/0040-kcm-Kernel-Connection-Multiplexor-module.patch +++ b/alpine/kernel/patches/0036-kcm-Kernel-Connection-Multiplexor-module.patch @@ -1,7 +1,7 @@ -From f3d84d9ee57ed72603ea8334302c2ed2971882b9 Mon Sep 17 00:00:00 2001 +From afde92b79d7bbdf25d3f583898cbee4773b07d41 Mon Sep 17 00:00:00 2001 From: Tom Herbert Date: Mon, 7 Mar 2016 14:11:06 -0800 -Subject: [PATCH 40/46] kcm: Kernel Connection Multiplexor module +Subject: [PATCH 36/42] kcm: Kernel Connection Multiplexor module This module implements the Kernel Connection Multiplexor. @@ -2308,5 +2308,5 @@ index 0000000..649d246 +MODULE_LICENSE("GPL"); +MODULE_ALIAS_NETPROTO(PF_KCM); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0041-net-add-the-AF_KCM-entries-to-family-name-tables.patch b/alpine/kernel/patches/0037-net-add-the-AF_KCM-entries-to-family-name-tables.patch similarity index 94% rename from alpine/kernel/patches/0041-net-add-the-AF_KCM-entries-to-family-name-tables.patch rename to alpine/kernel/patches/0037-net-add-the-AF_KCM-entries-to-family-name-tables.patch index a06100c1d..3e97c57c5 100644 --- a/alpine/kernel/patches/0041-net-add-the-AF_KCM-entries-to-family-name-tables.patch +++ b/alpine/kernel/patches/0037-net-add-the-AF_KCM-entries-to-family-name-tables.patch @@ -1,7 +1,7 @@ -From d436f250cb94cdc0f8ceb18c73e641f8285f2c87 Mon Sep 17 00:00:00 2001 +From 2f2e6e31ed1b82f1658139e0abe7155ee3755da1 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 21 Mar 2016 02:51:09 -0700 -Subject: [PATCH 41/46] net: add the AF_KCM entries to family name tables +Subject: [PATCH 37/42] net: add the AF_KCM entries to family name tables This is for the recent kcm driver, which introduces AF_KCM(41) in b7ac4eb(kcm: Kernel Connection Multiplexor module). @@ -48,5 +48,5 @@ index 0d91f7d..925def4 100644 /* -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0042-net-Add-Qualcomm-IPC-router.patch b/alpine/kernel/patches/0038-net-Add-Qualcomm-IPC-router.patch similarity index 99% rename from alpine/kernel/patches/0042-net-Add-Qualcomm-IPC-router.patch rename to alpine/kernel/patches/0038-net-Add-Qualcomm-IPC-router.patch index 7f528f523..2d3461c20 100644 --- a/alpine/kernel/patches/0042-net-Add-Qualcomm-IPC-router.patch +++ b/alpine/kernel/patches/0038-net-Add-Qualcomm-IPC-router.patch @@ -1,7 +1,7 @@ -From 550437ba0f633b470b719d981110cbd38a4a83c4 Mon Sep 17 00:00:00 2001 +From 9e184cb0991a4cc08cd7688f2d4e23740c60e382 Mon Sep 17 00:00:00 2001 From: Courtney Cavin Date: Wed, 27 Apr 2016 12:13:03 -0700 -Subject: [PATCH 42/46] net: Add Qualcomm IPC router +Subject: [PATCH 38/42] net: Add Qualcomm IPC router Add an implementation of Qualcomm's IPC router protocol, used to communicate with service providing remote processors. @@ -1303,5 +1303,5 @@ index 0000000..84ebce7 +MODULE_DESCRIPTION("Qualcomm IPC-Router SMD interface driver"); +MODULE_LICENSE("GPL v2"); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0043-hv_sock-introduce-Hyper-V-Sockets.patch b/alpine/kernel/patches/0039-hv_sock-introduce-Hyper-V-Sockets.patch similarity index 99% rename from alpine/kernel/patches/0043-hv_sock-introduce-Hyper-V-Sockets.patch rename to alpine/kernel/patches/0039-hv_sock-introduce-Hyper-V-Sockets.patch index 9cb20ceba..b1c07b141 100644 --- a/alpine/kernel/patches/0043-hv_sock-introduce-Hyper-V-Sockets.patch +++ b/alpine/kernel/patches/0039-hv_sock-introduce-Hyper-V-Sockets.patch @@ -1,7 +1,7 @@ -From 87e2463282f0dc46f866cce2efd5cb36eb964bdb Mon Sep 17 00:00:00 2001 +From 51293adacd73d7bc6baee18e87b0d17ad52a61d4 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Sun, 15 May 2016 09:53:11 -0700 -Subject: [PATCH 43/46] hv_sock: introduce Hyper-V Sockets +Subject: [PATCH 39/42] hv_sock: introduce Hyper-V Sockets Hyper-V Sockets (hv_sock) supplies a byte-stream based communication mechanism between the host and the guest. It's somewhat like TCP over @@ -41,10 +41,10 @@ Origin: https://patchwork.ozlabs.org/patch/622404/ create mode 100644 net/hv_sock/af_hvsock.c diff --git a/MAINTAINERS b/MAINTAINERS -index fa94182..ff17e76 100644 +index 12d49f5..fa87bdd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -5136,7 +5136,9 @@ F: drivers/input/serio/hyperv-keyboard.c +@@ -5123,7 +5123,9 @@ F: drivers/input/serio/hyperv-keyboard.c F: drivers/net/hyperv/ F: drivers/scsi/storvsc_drv.c F: drivers/video/fbdev/hyperv_fb.c @@ -185,7 +185,7 @@ index 0000000..7c8c41e + +#endif /* __AF_HVSOCK_H__ */ diff --git a/include/uapi/linux/hyperv.h b/include/uapi/linux/hyperv.h -index e4c0a35..9a698c1 100644 +index e347b24..408b832 100644 --- a/include/uapi/linux/hyperv.h +++ b/include/uapi/linux/hyperv.h @@ -26,6 +26,7 @@ @@ -196,7 +196,7 @@ index e4c0a35..9a698c1 100644 /* * Framework version for util services. -@@ -395,4 +396,28 @@ struct hv_kvp_ip_msg { +@@ -396,4 +397,28 @@ struct hv_kvp_ip_msg { struct hv_kvp_ipaddr_value kvp_ip_val; } __attribute__((packed)); @@ -1801,5 +1801,5 @@ index 0000000..b91bd60 +MODULE_DESCRIPTION("Hyper-V Sockets"); +MODULE_LICENSE("Dual BSD/GPL"); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0044-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch b/alpine/kernel/patches/0040-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch similarity index 93% rename from alpine/kernel/patches/0044-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch rename to alpine/kernel/patches/0040-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch index f43f27997..ce4bee972 100644 --- a/alpine/kernel/patches/0044-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch +++ b/alpine/kernel/patches/0040-net-add-the-AF_HYPERV-entries-to-family-name-tables.patch @@ -1,7 +1,7 @@ -From d3aac2768b413cea5e281290dfe236d7531638ad Mon Sep 17 00:00:00 2001 +From b7da2c01ddbb00ed9ccdd3d646f6129f07016cf8 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 21 Mar 2016 02:53:08 -0700 -Subject: [PATCH 44/46] net: add the AF_HYPERV entries to family name tables +Subject: [PATCH 40/42] net: add the AF_HYPERV entries to family name tables This is for the hv_sock driver, which introduces AF_HYPERV(42). @@ -45,5 +45,5 @@ index 925def4..323f7a3 100644 /* -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0045-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch b/alpine/kernel/patches/0041-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch similarity index 96% rename from alpine/kernel/patches/0045-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch rename to alpine/kernel/patches/0041-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch index 28566a1c6..8c3619340 100644 --- a/alpine/kernel/patches/0045-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch +++ b/alpine/kernel/patches/0041-Drivers-hv-vmbus-fix-the-race-when-querying-updating.patch @@ -1,7 +1,7 @@ -From 56e767526878b2fc79b0dfaa2860ed2ae836a52e Mon Sep 17 00:00:00 2001 +From cd11346c60451032d97062e25ed025bf692dff91 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Sat, 21 May 2016 16:55:50 +0800 -Subject: [PATCH 45/46] Drivers: hv: vmbus: fix the race when querying & +Subject: [PATCH 41/42] Drivers: hv: vmbus: fix the race when querying & updating the percpu list There is a rare race when we remove an entry from the global list @@ -129,5 +129,5 @@ index c892db5..0a54317 100644 err_free_chan: free_channel(newchannel); -- -2.9.3 +2.10.0 diff --git a/alpine/kernel/patches/0046-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch b/alpine/kernel/patches/0042-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch similarity index 86% rename from alpine/kernel/patches/0046-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch rename to alpine/kernel/patches/0042-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch index fa6b53ea5..d477b2713 100644 --- a/alpine/kernel/patches/0046-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch +++ b/alpine/kernel/patches/0042-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch @@ -1,7 +1,7 @@ -From 44694d7a14f502c9222ea100ab62fa7030acf548 Mon Sep 17 00:00:00 2001 +From 7abd92fd5987e1ad79f2272cbe544be0cfe84165 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Mon, 23 May 2016 18:55:45 +0100 -Subject: [PATCH 46/46] vmbus: Don't spam the logs with unknown GUIDs +Subject: [PATCH 42/42] vmbus: Don't spam the logs with unknown GUIDs With Hyper-V sockets device types are introduced on the fly. The pr_info() then prints a message on every connection, which is way too verbose. Since @@ -26,5 +26,5 @@ index 0a54317..120ee22 100644 } -- -2.9.3 +2.10.0