and drop those applied upstream

Signed-off-by: Fabian Grünbichler <[email protected]>
---
 ...sable-default-dynamic-halt-polling-growth.patch |   2 +-
 ...d-crash-on-pkey-enforcement-failed-in-re.patch} |   0
 .../0007-KVM-x86-fix-APIC-page-invalidation.patch  |  90 -------
 ...-Don-t-enforce-PKey-security-on-SMI-MADs.patch} |   0
 .../0008-vhost-fix-skb-leak-in-handle_rx.patch     |  72 -----
 ...PAT.patch => 0009-KVM-SVM-obey-guest-PAT.patch} |   0
 .../kernel/0009-tun-free-skb-in-early-errors.patch |  86 ------
 ...em_nbyte-don-t-add-the-data-offset-twice.patch} |   0
 .../kernel/0010-tap-free-skb-if-flags-error.patch  |  58 ----
 ...x-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch} |   0
 ...-Add-memory-barrier-on-vmcs-field-lookup.patch} |   2 +-
 ...EDAC-sb_edac-Fix-missing-break-in-switch.patch} |   4 +-
 ...nstate-support-for-CPUs-without-virtual-N.patch | 299 ---------------------
 ...ait-Fix-add_wait_queue-behavioral-change.patch} |   0
 ...line-Warn-about-missing-retpoline-in-mod.patch} |   0
 ...p-close-sock-if-net-namespace-is-exiting.patch} |   0
 ...mory-leak-related-filter-programming-stat.patch | 127 ---------
 ...p-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch} |   0
 ...p-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch} |   2 +-
 ...c-Don-t-create-a-second-memory-controller.patch | 102 -------
 ...ollback-of-set_grace_period-in-lockd_dow.patch} |   0
 ...e-metadata-estimation-accurate-and-clear.patch} |   0
 ...-reuse-extent-block-in-dealloc-without-m.patch} |   0
 ...-scsi-lpfc-Fix-loop-mode-target-discovery.patch |  45 ----
 24 files changed, 5 insertions(+), 884 deletions(-)
 rename 
patches/kernel/{0011-IB-core-Avoid-crash-on-pkey-enforcement-failed-in-re.patch 
=> 0007-IB-core-Avoid-crash-on-pkey-enforcement-failed-in-re.patch} (100%)
 delete mode 100644 patches/kernel/0007-KVM-x86-fix-APIC-page-invalidation.patch
 rename 
patches/kernel/{0012-IB-core-Don-t-enforce-PKey-security-on-SMI-MADs.patch => 
0008-IB-core-Don-t-enforce-PKey-security-on-SMI-MADs.patch} (100%)
 delete mode 100644 patches/kernel/0008-vhost-fix-skb-leak-in-handle_rx.patch
 rename patches/kernel/{0014-KVM-SVM-obey-guest-PAT.patch => 
0009-KVM-SVM-obey-guest-PAT.patch} (100%)
 delete mode 100644 patches/kernel/0009-tun-free-skb-in-early-errors.patch
 rename 
patches/kernel/{0015-net-sched-em_nbyte-don-t-add-the-data-offset-twice.patch 
=> 0010-net-sched-em_nbyte-don-t-add-the-data-offset-twice.patch} (100%)
 delete mode 100644 patches/kernel/0010-tap-free-skb-if-flags-error.patch
 rename 
patches/kernel/{0016-net-sched-fix-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch 
=> 0011-net-sched-fix-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch} (100%)
 rename 
patches/kernel/{0018-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch => 
0012-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch} (97%)
 rename patches/kernel/{0020-EDAC-sb_edac-Fix-missing-break-in-switch.patch => 
0013-EDAC-sb_edac-Fix-missing-break-in-switch.patch} (92%)
 delete mode 100644 
patches/kernel/0013-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-N.patch
 rename 
patches/kernel/{0022-sched-wait-Fix-add_wait_queue-behavioral-change.patch => 
0014-sched-wait-Fix-add_wait_queue-behavioral-change.patch} (100%)
 rename 
patches/kernel/{0023-module-retpoline-Warn-about-missing-retpoline-in-mod.patch 
=> 0015-module-retpoline-Warn-about-missing-retpoline-in-mod.patch} (100%)
 rename 
patches/kernel/{0024-net-tcp-close-sock-if-net-namespace-is-exiting.patch => 
0016-net-tcp-close-sock-if-net-namespace-is-exiting.patch} (100%)
 delete mode 100644 
patches/kernel/0017-i40e-Fix-memory-leak-related-filter-programming-stat.patch
 rename patches/kernel/{0025-sctp-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch 
=> 0017-sctp-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch} (100%)
 rename patches/kernel/{0026-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch 
=> 0018-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch} (98%)
 delete mode 100644 
patches/kernel/0019-EDAC-sb_edac-Don-t-create-a-second-memory-controller.patch
 rename 
patches/kernel/{0027-lockd-lost-rollback-of-set_grace_period-in-lockd_dow.patch 
=> 0019-lockd-lost-rollback-of-set_grace_period-in-lockd_dow.patch} (100%)
 rename 
patches/kernel/{0028-ocfs2-make-metadata-estimation-accurate-and-clear.patch => 
0020-ocfs2-make-metadata-estimation-accurate-and-clear.patch} (100%)
 rename 
patches/kernel/{0029-ocfs2-try-to-reuse-extent-block-in-dealloc-without-m.patch 
=> 0021-ocfs2-try-to-reuse-extent-block-in-dealloc-without-m.patch} (100%)
 delete mode 100644 
patches/kernel/0021-scsi-lpfc-Fix-loop-mode-target-discovery.patch

diff --git 
a/patches/kernel/0004-kvm-disable-default-dynamic-halt-polling-growth.patch 
b/patches/kernel/0004-kvm-disable-default-dynamic-halt-polling-growth.patch
index 863f916..1e8b2d8 100644
--- a/patches/kernel/0004-kvm-disable-default-dynamic-halt-polling-growth.patch
+++ b/patches/kernel/0004-kvm-disable-default-dynamic-halt-polling-growth.patch
@@ -12,7 +12,7 @@ Signed-off-by: Fabian Grünbichler <[email protected]>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index 4d81f6ded88e..bfa9c4d34102 100644
+index 3b3e54742263..d0085c9d6297 100644
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
 @@ -77,7 +77,7 @@ module_param(halt_poll_ns, uint, 0644);
diff --git 
a/patches/kernel/0011-IB-core-Avoid-crash-on-pkey-enforcement-failed-in-re.patch
 
b/patches/kernel/0007-IB-core-Avoid-crash-on-pkey-enforcement-failed-in-re.patch
similarity index 100%
rename from 
patches/kernel/0011-IB-core-Avoid-crash-on-pkey-enforcement-failed-in-re.patch
rename to 
patches/kernel/0007-IB-core-Avoid-crash-on-pkey-enforcement-failed-in-re.patch
diff --git a/patches/kernel/0007-KVM-x86-fix-APIC-page-invalidation.patch 
b/patches/kernel/0007-KVM-x86-fix-APIC-page-invalidation.patch
deleted file mode 100644
index 1e693f9..0000000
--- a/patches/kernel/0007-KVM-x86-fix-APIC-page-invalidation.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= <[email protected]>
-Date: Thu, 30 Nov 2017 19:05:45 +0100
-Subject: [PATCH] KVM: x86: fix APIC page invalidation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Implementation of the unpinned APIC page didn't update the VMCS address
-cache when invalidation was done through range mmu notifiers.
-This became a problem when the page notifier was removed.
-
-Re-introduce the arch-specific helper and call it from ...range_start.
-
-Fixes: 38b9917350cb ("kvm: vmx: Implement set_apic_access_page_addr")
-Fixes: 369ea8242c0f ("mm/rmap: update to new mmu_notifier semantic v2")
-Signed-off-by: Radim Krčmář <[email protected]>
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- arch/x86/include/asm/kvm_host.h |  3 +++
- arch/x86/kvm/x86.c              | 14 ++++++++++++++
- virt/kvm/kvm_main.c             |  8 ++++++++
- 3 files changed, 25 insertions(+)
-
-diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
-index 78ec3cda9429..1953c0a5b972 100644
---- a/arch/x86/include/asm/kvm_host.h
-+++ b/arch/x86/include/asm/kvm_host.h
-@@ -1439,4 +1439,7 @@ static inline int kvm_cpu_get_apicid(int mps_cpu)
- #endif
- }
- 
-+void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
-+              unsigned long start, unsigned long end);
-+
- #endif /* _ASM_X86_KVM_HOST_H */
-diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index f896c441fc2c..eae4aecf3cfe 100644
---- a/arch/x86/kvm/x86.c
-+++ b/arch/x86/kvm/x86.c
-@@ -6711,6 +6711,20 @@ static void kvm_vcpu_flush_tlb(struct kvm_vcpu *vcpu)
-       kvm_x86_ops->tlb_flush(vcpu);
- }
- 
-+void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
-+              unsigned long start, unsigned long end)
-+{
-+      unsigned long apic_address;
-+
-+      /*
-+       * The physical address of apic access page is stored in the VMCS.
-+       * Update it when it becomes invalid.
-+       */
-+      apic_address = gfn_to_hva(kvm, APIC_DEFAULT_PHYS_BASE >> PAGE_SHIFT);
-+      if (start <= apic_address && apic_address < end)
-+              kvm_make_all_cpus_request(kvm, KVM_REQ_APIC_PAGE_RELOAD);
-+}
-+
- void kvm_vcpu_reload_apic_access_page(struct kvm_vcpu *vcpu)
- {
-       struct page *page = NULL;
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index bfa9c4d34102..d0085c9d6297 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -136,6 +136,11 @@ static void kvm_uevent_notify_change(unsigned int type, 
struct kvm *kvm);
- static unsigned long long kvm_createvm_count;
- static unsigned long long kvm_active_vms;
- 
-+__weak void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
-+              unsigned long start, unsigned long end)
-+{
-+}
-+
- bool kvm_is_reserved_pfn(kvm_pfn_t pfn)
- {
-       if (pfn_valid(pfn))
-@@ -361,6 +366,9 @@ static void kvm_mmu_notifier_invalidate_range_start(struct 
mmu_notifier *mn,
-               kvm_flush_remote_tlbs(kvm);
- 
-       spin_unlock(&kvm->mmu_lock);
-+
-+      kvm_arch_mmu_notifier_invalidate_range(kvm, start, end);
-+
-       srcu_read_unlock(&kvm->srcu, idx);
- }
- 
--- 
-2.14.2
-
diff --git 
a/patches/kernel/0012-IB-core-Don-t-enforce-PKey-security-on-SMI-MADs.patch 
b/patches/kernel/0008-IB-core-Don-t-enforce-PKey-security-on-SMI-MADs.patch
similarity index 100%
rename from 
patches/kernel/0012-IB-core-Don-t-enforce-PKey-security-on-SMI-MADs.patch
rename to 
patches/kernel/0008-IB-core-Don-t-enforce-PKey-security-on-SMI-MADs.patch
diff --git a/patches/kernel/0008-vhost-fix-skb-leak-in-handle_rx.patch 
b/patches/kernel/0008-vhost-fix-skb-leak-in-handle_rx.patch
deleted file mode 100644
index 2176dbc..0000000
--- a/patches/kernel/0008-vhost-fix-skb-leak-in-handle_rx.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Wei Xu <[email protected]>
-Date: Fri, 1 Dec 2017 05:10:36 -0500
-Subject: [PATCH] vhost: fix skb leak in handle_rx()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Matthew found a roughly 40% tcp throughput regression with commit
-c67df11f(vhost_net: try batch dequing from skb array) as discussed
-in the following thread:
-https://www.mail-archive.com/[email protected]/msg187936.html
-
-Eventually we figured out that it was a skb leak in handle_rx()
-when sending packets to the VM. This usually happens when a guest
-can not drain out vq as fast as vhost fills in, afterwards it sets
-off the traffic jam and leaks skb(s) which occurs as no headcount
-to send on the vq from vhost side.
-
-This can be avoided by making sure we have got enough headcount
-before actually consuming a skb from the batched rx array while
-transmitting, which is simply done by moving checking the zero
-headcount a bit ahead.
-
-Signed-off-by: Wei Xu <[email protected]>
-Reported-by: Matthew Rosato <[email protected]>
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- drivers/vhost/net.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
-index 1c75572f5a3f..010253847022 100644
---- a/drivers/vhost/net.c
-+++ b/drivers/vhost/net.c
-@@ -781,16 +781,6 @@ static void handle_rx(struct vhost_net *net)
-               /* On error, stop handling until the next kick. */
-               if (unlikely(headcount < 0))
-                       goto out;
--              if (nvq->rx_array)
--                      msg.msg_control = vhost_net_buf_consume(&nvq->rxq);
--              /* On overrun, truncate and discard */
--              if (unlikely(headcount > UIO_MAXIOV)) {
--                      iov_iter_init(&msg.msg_iter, READ, vq->iov, 1, 1);
--                      err = sock->ops->recvmsg(sock, &msg,
--                                               1, MSG_DONTWAIT | MSG_TRUNC);
--                      pr_debug("Discarded rx packet: len %zd\n", sock_len);
--                      continue;
--              }
-               /* OK, now we need to know about added descriptors. */
-               if (!headcount) {
-                       if (unlikely(vhost_enable_notify(&net->dev, vq))) {
-@@ -803,6 +793,16 @@ static void handle_rx(struct vhost_net *net)
-                        * they refilled. */
-                       goto out;
-               }
-+              if (nvq->rx_array)
-+                      msg.msg_control = vhost_net_buf_consume(&nvq->rxq);
-+              /* On overrun, truncate and discard */
-+              if (unlikely(headcount > UIO_MAXIOV)) {
-+                      iov_iter_init(&msg.msg_iter, READ, vq->iov, 1, 1);
-+                      err = sock->ops->recvmsg(sock, &msg,
-+                                               1, MSG_DONTWAIT | MSG_TRUNC);
-+                      pr_debug("Discarded rx packet: len %zd\n", sock_len);
-+                      continue;
-+              }
-               /* We don't need to be notified again. */
-               iov_iter_init(&msg.msg_iter, READ, vq->iov, in, vhost_len);
-               fixup = msg.msg_iter;
--- 
-2.14.2
-
diff --git a/patches/kernel/0014-KVM-SVM-obey-guest-PAT.patch 
b/patches/kernel/0009-KVM-SVM-obey-guest-PAT.patch
similarity index 100%
rename from patches/kernel/0014-KVM-SVM-obey-guest-PAT.patch
rename to patches/kernel/0009-KVM-SVM-obey-guest-PAT.patch
diff --git a/patches/kernel/0009-tun-free-skb-in-early-errors.patch 
b/patches/kernel/0009-tun-free-skb-in-early-errors.patch
deleted file mode 100644
index 0185bbd..0000000
--- a/patches/kernel/0009-tun-free-skb-in-early-errors.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Wei Xu <[email protected]>
-Date: Fri, 1 Dec 2017 05:10:37 -0500
-Subject: [PATCH] tun: free skb in early errors
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-tun_recvmsg() supports accepting skb by msg_control after
-commit ac77cfd4258f ("tun: support receiving skb through msg_control"),
-the skb if presented should be freed no matter how far it can go
-along, otherwise it would be leaked.
-
-This patch fixes several missed cases.
-
-Signed-off-by: Wei Xu <[email protected]>
-Reported-by: Matthew Rosato <[email protected]>
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- drivers/net/tun.c | 24 ++++++++++++++++++------
- 1 file changed, 18 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index d1cb1ff83251..d58ae8ad0a4e 100644
---- a/drivers/net/tun.c
-+++ b/drivers/net/tun.c
-@@ -1519,8 +1519,11 @@ static ssize_t tun_do_read(struct tun_struct *tun, 
struct tun_file *tfile,
- 
-       tun_debug(KERN_INFO, tun, "tun_do_read\n");
- 
--      if (!iov_iter_count(to))
-+      if (!iov_iter_count(to)) {
-+              if (skb)
-+                      kfree_skb(skb);
-               return 0;
-+      }
- 
-       if (!skb) {
-               /* Read frames from ring */
-@@ -1636,22 +1639,24 @@ static int tun_recvmsg(struct socket *sock, struct 
msghdr *m, size_t total_len,
- {
-       struct tun_file *tfile = container_of(sock, struct tun_file, socket);
-       struct tun_struct *tun = __tun_get(tfile);
-+      struct sk_buff *skb = m->msg_control;
-       int ret;
- 
--      if (!tun)
--              return -EBADFD;
-+      if (!tun) {
-+              ret = -EBADFD;
-+              goto out_free_skb;
-+      }
- 
-       if (flags & ~(MSG_DONTWAIT|MSG_TRUNC|MSG_ERRQUEUE)) {
-               ret = -EINVAL;
--              goto out;
-+              goto out_put_tun;
-       }
-       if (flags & MSG_ERRQUEUE) {
-               ret = sock_recv_errqueue(sock->sk, m, total_len,
-                                        SOL_PACKET, TUN_TX_TIMESTAMP);
-               goto out;
-       }
--      ret = tun_do_read(tun, tfile, &m->msg_iter, flags & MSG_DONTWAIT,
--                        m->msg_control);
-+      ret = tun_do_read(tun, tfile, &m->msg_iter, flags & MSG_DONTWAIT, skb);
-       if (ret > (ssize_t)total_len) {
-               m->msg_flags |= MSG_TRUNC;
-               ret = flags & MSG_TRUNC ? ret : total_len;
-@@ -1659,6 +1664,13 @@ static int tun_recvmsg(struct socket *sock, struct 
msghdr *m, size_t total_len,
- out:
-       tun_put(tun);
-       return ret;
-+
-+out_put_tun:
-+      tun_put(tun);
-+out_free_skb:
-+      if (skb)
-+              kfree_skb(skb);
-+      return ret;
- }
- 
- static int tun_peek_len(struct socket *sock)
--- 
-2.14.2
-
diff --git 
a/patches/kernel/0015-net-sched-em_nbyte-don-t-add-the-data-offset-twice.patch 
b/patches/kernel/0010-net-sched-em_nbyte-don-t-add-the-data-offset-twice.patch
similarity index 100%
rename from 
patches/kernel/0015-net-sched-em_nbyte-don-t-add-the-data-offset-twice.patch
rename to 
patches/kernel/0010-net-sched-em_nbyte-don-t-add-the-data-offset-twice.patch
diff --git a/patches/kernel/0010-tap-free-skb-if-flags-error.patch 
b/patches/kernel/0010-tap-free-skb-if-flags-error.patch
deleted file mode 100644
index 87f6502..0000000
--- a/patches/kernel/0010-tap-free-skb-if-flags-error.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Wei Xu <[email protected]>
-Date: Fri, 1 Dec 2017 05:10:38 -0500
-Subject: [PATCH] tap: free skb if flags error
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-tap_recvmsg() supports accepting skb by msg_control after
-commit 3b4ba04acca8 ("tap: support receiving skb from msg_control"),
-the skb if presented should be freed within the function, otherwise
-it would be leaked.
-
-Signed-off-by: Wei Xu <[email protected]>
-Reported-by: Matthew Rosato <[email protected]>
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- drivers/net/tap.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/tap.c b/drivers/net/tap.c
-index 7a2f6bebfd15..96e5e5b2ae39 100644
---- a/drivers/net/tap.c
-+++ b/drivers/net/tap.c
-@@ -829,8 +829,11 @@ static ssize_t tap_do_read(struct tap_queue *q,
-       DEFINE_WAIT(wait);
-       ssize_t ret = 0;
- 
--      if (!iov_iter_count(to))
-+      if (!iov_iter_count(to)) {
-+              if (skb)
-+                      kfree_skb(skb);
-               return 0;
-+      }
- 
-       if (skb)
-               goto put;
-@@ -1157,11 +1160,14 @@ static int tap_recvmsg(struct socket *sock, struct 
msghdr *m,
-                      size_t total_len, int flags)
- {
-       struct tap_queue *q = container_of(sock, struct tap_queue, sock);
-+      struct sk_buff *skb = m->msg_control;
-       int ret;
--      if (flags & ~(MSG_DONTWAIT|MSG_TRUNC))
-+      if (flags & ~(MSG_DONTWAIT|MSG_TRUNC)) {
-+              if (skb)
-+                      kfree_skb(skb);
-               return -EINVAL;
--      ret = tap_do_read(q, &m->msg_iter, flags & MSG_DONTWAIT,
--                        m->msg_control);
-+      }
-+      ret = tap_do_read(q, &m->msg_iter, flags & MSG_DONTWAIT, skb);
-       if (ret > total_len) {
-               m->msg_flags |= MSG_TRUNC;
-               ret = flags & MSG_TRUNC ? ret : total_len;
--- 
-2.14.2
-
diff --git 
a/patches/kernel/0016-net-sched-fix-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch
 
b/patches/kernel/0011-net-sched-fix-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch
similarity index 100%
rename from 
patches/kernel/0016-net-sched-fix-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch
rename to 
patches/kernel/0011-net-sched-fix-TCF_LAYER_LINK-case-in-tcf_get_base_pt.patch
diff --git 
a/patches/kernel/0018-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch 
b/patches/kernel/0012-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch
similarity index 97%
rename from 
patches/kernel/0018-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch
rename to 
patches/kernel/0012-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch
index 8fc4603..0523e06 100644
--- a/patches/kernel/0018-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch
+++ b/patches/kernel/0012-KVM-x86-Add-memory-barrier-on-vmcs-field-lookup.patch
@@ -22,7 +22,7 @@ Signed-off-by: Fabian Grünbichler <[email protected]>
  1 file changed, 10 insertions(+), 2 deletions(-)
 
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 146caacd8fdd..80732f87cac0 100644
+index 097f3daae037..b078b56234bb 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
 @@ -883,8 +883,16 @@ static inline short vmcs_field_to_offset(unsigned long 
field)
diff --git a/patches/kernel/0020-EDAC-sb_edac-Fix-missing-break-in-switch.patch 
b/patches/kernel/0013-EDAC-sb_edac-Fix-missing-break-in-switch.patch
similarity index 92%
rename from patches/kernel/0020-EDAC-sb_edac-Fix-missing-break-in-switch.patch
rename to patches/kernel/0013-EDAC-sb_edac-Fix-missing-break-in-switch.patch
index b7ca81a..0421f14 100644
--- a/patches/kernel/0020-EDAC-sb_edac-Fix-missing-break-in-switch.patch
+++ b/patches/kernel/0013-EDAC-sb_edac-Fix-missing-break-in-switch.patch
@@ -21,10 +21,10 @@ Signed-off-by: Fabian Grünbichler 
<[email protected]>
  1 file changed, 1 insertion(+)
 
 diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
-index 7a3b201d51df..fb0264ef83a3 100644
+index 5c3e707ff3fc..59af590b660c 100644
 --- a/drivers/edac/sb_edac.c
 +++ b/drivers/edac/sb_edac.c
-@@ -2467,6 +2467,7 @@ static int ibridge_mci_bind_devs(struct mem_ctl_info 
*mci,
+@@ -2454,6 +2454,7 @@ static int ibridge_mci_bind_devs(struct mem_ctl_info 
*mci,
                case PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA0_TA:
                case PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA1_TA:
                        pvt->pci_ta = pdev;
diff --git 
a/patches/kernel/0013-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-N.patch
 
b/patches/kernel/0013-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-N.patch
deleted file mode 100644
index 54a3fdb..0000000
--- 
a/patches/kernel/0013-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-N.patch
+++ /dev/null
@@ -1,299 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <[email protected]>
-Date: Mon, 6 Nov 2017 13:31:12 +0100
-Subject: [PATCH] kvm: vmx: Reinstate support for CPUs without virtual NMI
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8a1b43922d0d1279e7936ba85c4c2a870403c95f upstream.
-
-This is more or less a revert of commit 2c82878b0cb3 ("KVM: VMX: require
-virtual NMI support", 2017-03-27); it turns out that Core 2 Duo machines
-only had virtual NMIs in some SKUs.
-
-The revert is not trivial because in the meanwhile there have been several
-fixes to nested NMI injection.  Therefore, the entire vNMI state is moved
-to struct loaded_vmcs.
-
-Another change compared to before the patch is a simplification here:
-
-       if (unlikely(!cpu_has_virtual_nmis() && vmx->soft_vnmi_blocked &&
-           !(is_guest_mode(vcpu) && nested_cpu_has_virtual_nmis(
-                                       get_vmcs12(vcpu))))) {
-
-The final condition here is always true (because nested_cpu_has_virtual_nmis
-is always false) and is removed.
-
-Fixes: 2c82878b0cb38fd516fd612c67852a6bbf282003
-Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1490803
-Signed-off-by: Paolo Bonzini <[email protected]>
-Signed-off-by: Radim Krčmář <[email protected]>
-Signed-off-by: Greg Kroah-Hartman <[email protected]>
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- arch/x86/kvm/vmx.c | 150 +++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 106 insertions(+), 44 deletions(-)
-
-diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 5edf05ce45de..146caacd8fdd 100644
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -204,6 +204,10 @@ struct loaded_vmcs {
-       bool nmi_known_unmasked;
-       unsigned long vmcs_host_cr3;    /* May not match real cr3 */
-       unsigned long vmcs_host_cr4;    /* May not match real cr4 */
-+      /* Support for vnmi-less CPUs */
-+      int soft_vnmi_blocked;
-+      ktime_t entry_time;
-+      s64 vnmi_blocked_time;
-       struct list_head loaded_vmcss_on_cpu_link;
- };
- 
-@@ -1290,6 +1294,11 @@ static inline bool cpu_has_vmx_invpcid(void)
-               SECONDARY_EXEC_ENABLE_INVPCID;
- }
- 
-+static inline bool cpu_has_virtual_nmis(void)
-+{
-+      return vmcs_config.pin_based_exec_ctrl & PIN_BASED_VIRTUAL_NMIS;
-+}
-+
- static inline bool cpu_has_vmx_wbinvd_exit(void)
- {
-       return vmcs_config.cpu_based_2nd_exec_ctrl &
-@@ -1341,11 +1350,6 @@ static inline bool nested_cpu_has2(struct vmcs12 
*vmcs12, u32 bit)
-               (vmcs12->secondary_vm_exec_control & bit);
- }
- 
--static inline bool nested_cpu_has_virtual_nmis(struct vmcs12 *vmcs12)
--{
--      return vmcs12->pin_based_vm_exec_control & PIN_BASED_VIRTUAL_NMIS;
--}
--
- static inline bool nested_cpu_has_preemption_timer(struct vmcs12 *vmcs12)
- {
-       return vmcs12->pin_based_vm_exec_control &
-@@ -3687,9 +3691,9 @@ static __init int setup_vmcs_config(struct vmcs_config 
*vmcs_conf)
-                               &_vmexit_control) < 0)
-               return -EIO;
- 
--      min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING |
--              PIN_BASED_VIRTUAL_NMIS;
--      opt = PIN_BASED_POSTED_INTR | PIN_BASED_VMX_PREEMPTION_TIMER;
-+      min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING;
-+      opt = PIN_BASED_VIRTUAL_NMIS | PIN_BASED_POSTED_INTR |
-+               PIN_BASED_VMX_PREEMPTION_TIMER;
-       if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PINBASED_CTLS,
-                               &_pin_based_exec_control) < 0)
-               return -EIO;
-@@ -5549,7 +5553,8 @@ static void enable_irq_window(struct kvm_vcpu *vcpu)
- 
- static void enable_nmi_window(struct kvm_vcpu *vcpu)
- {
--      if (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) {
-+      if (!cpu_has_virtual_nmis() ||
-+          vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) {
-               enable_irq_window(vcpu);
-               return;
-       }
-@@ -5589,6 +5594,19 @@ static void vmx_inject_nmi(struct kvm_vcpu *vcpu)
- {
-       struct vcpu_vmx *vmx = to_vmx(vcpu);
- 
-+      if (!cpu_has_virtual_nmis()) {
-+              /*
-+               * Tracking the NMI-blocked state in software is built upon
-+               * finding the next open IRQ window. This, in turn, depends on
-+               * well-behaving guests: They have to keep IRQs disabled at
-+               * least as long as the NMI handler runs. Otherwise we may
-+               * cause NMI nesting, maybe breaking the guest. But as this is
-+               * highly unlikely, we can live with the residual risk.
-+               */
-+              vmx->loaded_vmcs->soft_vnmi_blocked = 1;
-+              vmx->loaded_vmcs->vnmi_blocked_time = 0;
-+      }
-+
-       ++vcpu->stat.nmi_injections;
-       vmx->loaded_vmcs->nmi_known_unmasked = false;
- 
-@@ -5607,6 +5625,8 @@ static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu)
-       struct vcpu_vmx *vmx = to_vmx(vcpu);
-       bool masked;
- 
-+      if (!cpu_has_virtual_nmis())
-+              return vmx->loaded_vmcs->soft_vnmi_blocked;
-       if (vmx->loaded_vmcs->nmi_known_unmasked)
-               return false;
-       masked = vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & 
GUEST_INTR_STATE_NMI;
-@@ -5618,13 +5638,20 @@ static void vmx_set_nmi_mask(struct kvm_vcpu *vcpu, 
bool masked)
- {
-       struct vcpu_vmx *vmx = to_vmx(vcpu);
- 
--      vmx->loaded_vmcs->nmi_known_unmasked = !masked;
--      if (masked)
--              vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO,
--                            GUEST_INTR_STATE_NMI);
--      else
--              vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO,
--                              GUEST_INTR_STATE_NMI);
-+      if (!cpu_has_virtual_nmis()) {
-+              if (vmx->loaded_vmcs->soft_vnmi_blocked != masked) {
-+                      vmx->loaded_vmcs->soft_vnmi_blocked = masked;
-+                      vmx->loaded_vmcs->vnmi_blocked_time = 0;
-+              }
-+      } else {
-+              vmx->loaded_vmcs->nmi_known_unmasked = !masked;
-+              if (masked)
-+                      vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO,
-+                                    GUEST_INTR_STATE_NMI);
-+              else
-+                      vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO,
-+                                      GUEST_INTR_STATE_NMI);
-+      }
- }
- 
- static int vmx_nmi_allowed(struct kvm_vcpu *vcpu)
-@@ -5632,6 +5659,10 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu)
-       if (to_vmx(vcpu)->nested.nested_run_pending)
-               return 0;
- 
-+      if (!cpu_has_virtual_nmis() &&
-+          to_vmx(vcpu)->loaded_vmcs->soft_vnmi_blocked)
-+              return 0;
-+
-       return  !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) &
-                 (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_STI
-                  | GUEST_INTR_STATE_NMI));
-@@ -6360,6 +6391,7 @@ static int handle_ept_violation(struct kvm_vcpu *vcpu)
-        * AAK134, BY25.
-        */
-       if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) &&
-+                      cpu_has_virtual_nmis() &&
-                       (exit_qualification & INTR_INFO_UNBLOCK_NMI))
-               vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, 
GUEST_INTR_STATE_NMI);
- 
-@@ -6834,7 +6866,7 @@ static struct loaded_vmcs 
*nested_get_current_vmcs02(struct vcpu_vmx *vmx)
-       }
- 
-       /* Create a new VMCS */
--      item = kmalloc(sizeof(struct vmcs02_list), GFP_KERNEL);
-+      item = kzalloc(sizeof(struct vmcs02_list), GFP_KERNEL);
-       if (!item)
-               return NULL;
-       item->vmcs02.vmcs = alloc_vmcs();
-@@ -7851,6 +7883,7 @@ static int handle_pml_full(struct kvm_vcpu *vcpu)
-        * "blocked by NMI" bit has to be set before next VM entry.
-        */
-       if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) &&
-+                      cpu_has_virtual_nmis() &&
-                       (exit_qualification & INTR_INFO_UNBLOCK_NMI))
-               vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO,
-                               GUEST_INTR_STATE_NMI);
-@@ -8568,6 +8601,25 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu)
-               return 0;
-       }
- 
-+      if (unlikely(!cpu_has_virtual_nmis() &&
-+                   vmx->loaded_vmcs->soft_vnmi_blocked)) {
-+              if (vmx_interrupt_allowed(vcpu)) {
-+                      vmx->loaded_vmcs->soft_vnmi_blocked = 0;
-+              } else if (vmx->loaded_vmcs->vnmi_blocked_time > 1000000000LL &&
-+                         vcpu->arch.nmi_pending) {
-+                      /*
-+                       * This CPU don't support us in finding the end of an
-+                       * NMI-blocked window if the guest runs with IRQs
-+                       * disabled. So we pull the trigger after 1 s of
-+                       * futile waiting, but inform the user about this.
-+                       */
-+                      printk(KERN_WARNING "%s: Breaking out of NMI-blocked "
-+                             "state on VCPU %d after 1 s timeout\n",
-+                             __func__, vcpu->vcpu_id);
-+                      vmx->loaded_vmcs->soft_vnmi_blocked = 0;
-+              }
-+      }
-+
-       if (exit_reason < kvm_vmx_max_exit_handlers
-           && kvm_vmx_exit_handlers[exit_reason])
-               return kvm_vmx_exit_handlers[exit_reason](vcpu);
-@@ -8850,33 +8902,38 @@ static void vmx_recover_nmi_blocking(struct vcpu_vmx 
*vmx)
- 
-       idtv_info_valid = vmx->idt_vectoring_info & VECTORING_INFO_VALID_MASK;
- 
--      if (vmx->loaded_vmcs->nmi_known_unmasked)
--              return;
--      /*
--       * Can't use vmx->exit_intr_info since we're not sure what
--       * the exit reason is.
--       */
--      exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
--      unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0;
--      vector = exit_intr_info & INTR_INFO_VECTOR_MASK;
--      /*
--       * SDM 3: 27.7.1.2 (September 2008)
--       * Re-set bit "block by NMI" before VM entry if vmexit caused by
--       * a guest IRET fault.
--       * SDM 3: 23.2.2 (September 2008)
--       * Bit 12 is undefined in any of the following cases:
--       *  If the VM exit sets the valid bit in the IDT-vectoring
--       *   information field.
--       *  If the VM exit is due to a double fault.
--       */
--      if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi &&
--          vector != DF_VECTOR && !idtv_info_valid)
--              vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO,
--                            GUEST_INTR_STATE_NMI);
--      else
--              vmx->loaded_vmcs->nmi_known_unmasked =
--                      !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO)
--                        & GUEST_INTR_STATE_NMI);
-+      if (cpu_has_virtual_nmis()) {
-+              if (vmx->loaded_vmcs->nmi_known_unmasked)
-+                      return;
-+              /*
-+               * Can't use vmx->exit_intr_info since we're not sure what
-+               * the exit reason is.
-+               */
-+              exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
-+              unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0;
-+              vector = exit_intr_info & INTR_INFO_VECTOR_MASK;
-+              /*
-+               * SDM 3: 27.7.1.2 (September 2008)
-+               * Re-set bit "block by NMI" before VM entry if vmexit caused by
-+               * a guest IRET fault.
-+               * SDM 3: 23.2.2 (September 2008)
-+               * Bit 12 is undefined in any of the following cases:
-+               *  If the VM exit sets the valid bit in the IDT-vectoring
-+               *   information field.
-+               *  If the VM exit is due to a double fault.
-+               */
-+              if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi &&
-+                  vector != DF_VECTOR && !idtv_info_valid)
-+                      vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO,
-+                                    GUEST_INTR_STATE_NMI);
-+              else
-+                      vmx->loaded_vmcs->nmi_known_unmasked =
-+                              !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO)
-+                                & GUEST_INTR_STATE_NMI);
-+      } else if (unlikely(vmx->loaded_vmcs->soft_vnmi_blocked))
-+              vmx->loaded_vmcs->vnmi_blocked_time +=
-+                      ktime_to_ns(ktime_sub(ktime_get(),
-+                                            vmx->loaded_vmcs->entry_time));
- }
- 
- static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu,
-@@ -8993,6 +9050,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu 
*vcpu)
-       struct vcpu_vmx *vmx = to_vmx(vcpu);
-       unsigned long debugctlmsr, cr3, cr4;
- 
-+      /* Record the guest's net vcpu time for enforced NMI injections. */
-+      if (unlikely(!cpu_has_virtual_nmis() &&
-+                   vmx->loaded_vmcs->soft_vnmi_blocked))
-+              vmx->loaded_vmcs->entry_time = ktime_get();
-+
-       /* Don't enter VMX if guest state is invalid, let the exit handler
-          start emulation until we arrive back to a valid state */
-       if (vmx->emulation_required)
--- 
-2.14.2
-
diff --git 
a/patches/kernel/0022-sched-wait-Fix-add_wait_queue-behavioral-change.patch 
b/patches/kernel/0014-sched-wait-Fix-add_wait_queue-behavioral-change.patch
similarity index 100%
rename from 
patches/kernel/0022-sched-wait-Fix-add_wait_queue-behavioral-change.patch
rename to 
patches/kernel/0014-sched-wait-Fix-add_wait_queue-behavioral-change.patch
diff --git 
a/patches/kernel/0023-module-retpoline-Warn-about-missing-retpoline-in-mod.patch
 
b/patches/kernel/0015-module-retpoline-Warn-about-missing-retpoline-in-mod.patch
similarity index 100%
rename from 
patches/kernel/0023-module-retpoline-Warn-about-missing-retpoline-in-mod.patch
rename to 
patches/kernel/0015-module-retpoline-Warn-about-missing-retpoline-in-mod.patch
diff --git 
a/patches/kernel/0024-net-tcp-close-sock-if-net-namespace-is-exiting.patch 
b/patches/kernel/0016-net-tcp-close-sock-if-net-namespace-is-exiting.patch
similarity index 100%
rename from 
patches/kernel/0024-net-tcp-close-sock-if-net-namespace-is-exiting.patch
rename to 
patches/kernel/0016-net-tcp-close-sock-if-net-namespace-is-exiting.patch
diff --git 
a/patches/kernel/0017-i40e-Fix-memory-leak-related-filter-programming-stat.patch
 
b/patches/kernel/0017-i40e-Fix-memory-leak-related-filter-programming-stat.patch
deleted file mode 100644
index e318a18..0000000
--- 
a/patches/kernel/0017-i40e-Fix-memory-leak-related-filter-programming-stat.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Alexander Duyck <[email protected]>
-Date: Wed, 4 Oct 2017 08:44:43 -0700
-Subject: [PATCH] i40e: Fix memory leak related filter programming status
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It looks like we weren't correctly placing the pages from buffers that had
-been used to return a filter programming status back on the ring. As a
-result they were being overwritten and tracking of the pages was lost.
-
-This change works to correct that by incorporating part of
-i40e_put_rx_buffer into the programming status handler code. As a result we
-should now be correctly placing the pages for those buffers on the
-re-allocation list instead of letting them stay in place.
-
-Fixes: 0e626ff7ccbf ("i40e: Fix support for flow director programming status")
-Reported-by: Anders K. Pedersen <[email protected]>
-Signed-off-by: Alexander Duyck <[email protected]>
-Tested-by: Anders K Pedersen <[email protected]>
-Signed-off-by: Jeff Kirsher <[email protected]>
-(cherry picked from commit 2b9478ffc550f17c6cd8c69057234e91150f5972)
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 63 ++++++++++++++++-------------
- 1 file changed, 36 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c 
b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
-index 2194960d5855..391b1878c24b 100644
---- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
-+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
-@@ -1042,6 +1042,32 @@ static bool i40e_set_new_dynamic_itr(struct 
i40e_ring_container *rc)
-       return false;
- }
- 
-+/**
-+ * i40e_reuse_rx_page - page flip buffer and store it back on the ring
-+ * @rx_ring: rx descriptor ring to store buffers on
-+ * @old_buff: donor buffer to have page reused
-+ *
-+ * Synchronizes page for reuse by the adapter
-+ **/
-+static void i40e_reuse_rx_page(struct i40e_ring *rx_ring,
-+                             struct i40e_rx_buffer *old_buff)
-+{
-+      struct i40e_rx_buffer *new_buff;
-+      u16 nta = rx_ring->next_to_alloc;
-+
-+      new_buff = &rx_ring->rx_bi[nta];
-+
-+      /* update, and store next to alloc */
-+      nta++;
-+      rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0;
-+
-+      /* transfer page from old buffer to new buffer */
-+      new_buff->dma           = old_buff->dma;
-+      new_buff->page          = old_buff->page;
-+      new_buff->page_offset   = old_buff->page_offset;
-+      new_buff->pagecnt_bias  = old_buff->pagecnt_bias;
-+}
-+
- /**
-  * i40e_rx_is_programming_status - check for programming status descriptor
-  * @qw: qword representing status_error_len in CPU ordering
-@@ -1076,15 +1102,24 @@ static void i40e_clean_programming_status(struct 
i40e_ring *rx_ring,
-                                         union i40e_rx_desc *rx_desc,
-                                         u64 qw)
- {
--      u32 ntc = rx_ring->next_to_clean + 1;
-+      struct i40e_rx_buffer *rx_buffer;
-+      u32 ntc = rx_ring->next_to_clean;
-       u8 id;
- 
-       /* fetch, update, and store next to clean */
-+      rx_buffer = &rx_ring->rx_bi[ntc++];
-       ntc = (ntc < rx_ring->count) ? ntc : 0;
-       rx_ring->next_to_clean = ntc;
- 
-       prefetch(I40E_RX_DESC(rx_ring, ntc));
- 
-+      /* place unused page back on the ring */
-+      i40e_reuse_rx_page(rx_ring, rx_buffer);
-+      rx_ring->rx_stats.page_reuse_count++;
-+
-+      /* clear contents of buffer_info */
-+      rx_buffer->page = NULL;
-+
-       id = (qw & I40E_RX_PROG_STATUS_DESC_QW1_PROGID_MASK) >>
-                 I40E_RX_PROG_STATUS_DESC_QW1_PROGID_SHIFT;
- 
-@@ -1643,32 +1678,6 @@ static bool i40e_cleanup_headers(struct i40e_ring 
*rx_ring, struct sk_buff *skb,
-       return false;
- }
- 
--/**
-- * i40e_reuse_rx_page - page flip buffer and store it back on the ring
-- * @rx_ring: rx descriptor ring to store buffers on
-- * @old_buff: donor buffer to have page reused
-- *
-- * Synchronizes page for reuse by the adapter
-- **/
--static void i40e_reuse_rx_page(struct i40e_ring *rx_ring,
--                             struct i40e_rx_buffer *old_buff)
--{
--      struct i40e_rx_buffer *new_buff;
--      u16 nta = rx_ring->next_to_alloc;
--
--      new_buff = &rx_ring->rx_bi[nta];
--
--      /* update, and store next to alloc */
--      nta++;
--      rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0;
--
--      /* transfer page from old buffer to new buffer */
--      new_buff->dma           = old_buff->dma;
--      new_buff->page          = old_buff->page;
--      new_buff->page_offset   = old_buff->page_offset;
--      new_buff->pagecnt_bias  = old_buff->pagecnt_bias;
--}
--
- /**
-  * i40e_page_is_reusable - check if any reuse is possible
-  * @page: page struct to check
--- 
-2.14.2
-
diff --git 
a/patches/kernel/0025-sctp-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch 
b/patches/kernel/0017-sctp-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch
similarity index 100%
rename from 
patches/kernel/0025-sctp-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch
rename to patches/kernel/0017-sctp-fix-dst-refcnt-leak-in-sctp_v4_get_dst.patch
diff --git 
a/patches/kernel/0026-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch 
b/patches/kernel/0018-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch
similarity index 98%
rename from 
patches/kernel/0026-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch
rename to patches/kernel/0018-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch
index 58087ed..e6de54a 100644
--- a/patches/kernel/0026-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch
+++ b/patches/kernel/0018-sctp-fix-dst-refcnt-leak-in-sctp_v6_get_dst.patch
@@ -27,7 +27,7 @@ Signed-off-by: Fabian Grünbichler <[email protected]>
  1 file changed, 7 insertions(+), 3 deletions(-)
 
 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
-index a4b6ffb61495..c5a5ad8ac00f 100644
+index edb462b0b73b..e626d72868fe 100644
 --- a/net/sctp/ipv6.c
 +++ b/net/sctp/ipv6.c
 @@ -326,8 +326,10 @@ static void sctp_v6_get_dst(struct sctp_transport *t, 
union sctp_addr *saddr,
diff --git 
a/patches/kernel/0019-EDAC-sb_edac-Don-t-create-a-second-memory-controller.patch
 
b/patches/kernel/0019-EDAC-sb_edac-Don-t-create-a-second-memory-controller.patch
deleted file mode 100644
index 4272010..0000000
--- 
a/patches/kernel/0019-EDAC-sb_edac-Don-t-create-a-second-memory-controller.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Qiuxu Zhuo <[email protected]>
-Date: Wed, 13 Sep 2017 18:42:14 +0800
-Subject: [PATCH] EDAC, sb_edac: Don't create a second memory controller if HA1
- is not present
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Yi Zhang reported the following failure on a 2-socket Haswell (E5-2603v3)
-server (DELL PowerEdge 730xd):
-
-  EDAC sbridge: Some needed devices are missing
-  EDAC MC: Removed device 0 for sb_edac.c Haswell SrcID#0_Ha#0: DEV 
0000:7f:12.0
-  EDAC MC: Removed device 1 for sb_edac.c Haswell SrcID#1_Ha#0: DEV 
0000:ff:12.0
-  EDAC sbridge: Couldn't find mci handler
-  EDAC sbridge: Couldn't find mci handler
-  EDAC sbridge: Failed to register device with error -19.
-
-The refactored sb_edac driver creates the IMC1 (the 2nd memory
-controller) if any IMC1 device is present. In this case only
-HA1_TA of IMC1 was present, but the driver expected to find
-HA1/HA1_TM/HA1_TAD[0-3] devices too, leading to the above failure.
-
-The document [1] says the 'E5-2603 v3' CPU has 4 memory channels max. Yi
-Zhang inserted one DIMM per channel for each CPU, and did random error
-address injection test with this patch:
-
-      4024  addresses fell in TOLM hole area
-     12715  addresses fell in CPU_SrcID#0_Ha#0_Chan#0_DIMM#0
-     12774  addresses fell in CPU_SrcID#0_Ha#0_Chan#1_DIMM#0
-     12798  addresses fell in CPU_SrcID#0_Ha#0_Chan#2_DIMM#0
-     12913  addresses fell in CPU_SrcID#0_Ha#0_Chan#3_DIMM#0
-     12674  addresses fell in CPU_SrcID#1_Ha#0_Chan#0_DIMM#0
-     12686  addresses fell in CPU_SrcID#1_Ha#0_Chan#1_DIMM#0
-     12882  addresses fell in CPU_SrcID#1_Ha#0_Chan#2_DIMM#0
-     12934  addresses fell in CPU_SrcID#1_Ha#0_Chan#3_DIMM#0
-    106400  addresses were injected totally.
-
-The test result shows that all the 4 channels belong to IMC0 per CPU, so
-the server really only has one IMC per CPU.
-
-In the 1st page of chapter 2 in datasheet [2], it also says 'E5-2600 v3'
-implements either one or two IMCs. For CPUs with one IMC, IMC1 is not
-used and should be ignored.
-
-Thus, do not create a second memory controller if the key HA1 is absent.
-
-[1] 
http://ark.intel.com/products/83349/Intel-Xeon-Processor-E5-2603-v3-15M-Cache-1_60-GHz
-[2] 
https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e5-v3-datasheet-vol-2.pdf
-
-Reported-and-tested-by: Yi Zhang <[email protected]>
-Signed-off-by: Qiuxu Zhuo <[email protected]>
-Cc: Tony Luck <[email protected]>
-Cc: linux-edac <[email protected]>
-Fixes: e2f747b1f42a ("EDAC, sb_edac: Assign EDAC memory controller per h/w 
controller")
-Link: http://lkml.kernel.org/r/[email protected]
-[ Massage commit message. ]
-Signed-off-by: Borislav Petkov <[email protected]>
-(cherry picked from commit 15cc3ae001873845b5d842e212478a6570c7d938)
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- drivers/edac/sb_edac.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
-index 80d860cb0746..7a3b201d51df 100644
---- a/drivers/edac/sb_edac.c
-+++ b/drivers/edac/sb_edac.c
-@@ -455,6 +455,7 @@ static const struct pci_id_table 
pci_dev_descr_sbridge_table[] = {
- static const struct pci_id_descr pci_dev_descr_ibridge[] = {
-               /* Processor Home Agent */
-       { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA0,        0, IMC0) },
-+      { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA1,        1, IMC1) },
- 
-               /* Memory controller */
-       { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA0_TA,     0, IMC0) },
-@@ -465,7 +466,6 @@ static const struct pci_id_descr pci_dev_descr_ibridge[] = 
{
-       { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA0_TAD3,   0, IMC0) },
- 
-               /* Optional, mode 2HA */
--      { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA1,        1, IMC1) },
-       { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA1_TA,     1, IMC1) },
-       { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA1_RAS,    1, IMC1) },
-       { PCI_DESCR(PCI_DEVICE_ID_INTEL_IBRIDGE_IMC_HA1_TAD0,   1, IMC1) },
-@@ -2260,6 +2260,13 @@ static int sbridge_get_onedevice(struct pci_dev **prev,
- next_imc:
-       sbridge_dev = get_sbridge_dev(bus, dev_descr->dom, multi_bus, 
sbridge_dev);
-       if (!sbridge_dev) {
-+              /* If the HA1 wasn't found, don't create EDAC second memory 
controller */
-+              if (dev_descr->dom == IMC1 && devno != 1) {
-+                      edac_dbg(0, "Skip IMC1: %04x:%04x (since HA1 was 
absent)\n",
-+                               PCI_VENDOR_ID_INTEL, dev_descr->dev_id);
-+                      pci_dev_put(pdev);
-+                      return 0;
-+              }
- 
-               if (dev_descr->dom == SOCK)
-                       goto out_imc;
--- 
-2.14.2
-
diff --git 
a/patches/kernel/0027-lockd-lost-rollback-of-set_grace_period-in-lockd_dow.patch
 
b/patches/kernel/0019-lockd-lost-rollback-of-set_grace_period-in-lockd_dow.patch
similarity index 100%
rename from 
patches/kernel/0027-lockd-lost-rollback-of-set_grace_period-in-lockd_dow.patch
rename to 
patches/kernel/0019-lockd-lost-rollback-of-set_grace_period-in-lockd_dow.patch
diff --git 
a/patches/kernel/0028-ocfs2-make-metadata-estimation-accurate-and-clear.patch 
b/patches/kernel/0020-ocfs2-make-metadata-estimation-accurate-and-clear.patch
similarity index 100%
rename from 
patches/kernel/0028-ocfs2-make-metadata-estimation-accurate-and-clear.patch
rename to 
patches/kernel/0020-ocfs2-make-metadata-estimation-accurate-and-clear.patch
diff --git 
a/patches/kernel/0029-ocfs2-try-to-reuse-extent-block-in-dealloc-without-m.patch
 
b/patches/kernel/0021-ocfs2-try-to-reuse-extent-block-in-dealloc-without-m.patch
similarity index 100%
rename from 
patches/kernel/0029-ocfs2-try-to-reuse-extent-block-in-dealloc-without-m.patch
rename to 
patches/kernel/0021-ocfs2-try-to-reuse-extent-block-in-dealloc-without-m.patch
diff --git a/patches/kernel/0021-scsi-lpfc-Fix-loop-mode-target-discovery.patch 
b/patches/kernel/0021-scsi-lpfc-Fix-loop-mode-target-discovery.patch
deleted file mode 100644
index 4f7bf71..0000000
--- a/patches/kernel/0021-scsi-lpfc-Fix-loop-mode-target-discovery.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Dick Kennedy <[email protected]>
-Date: Wed, 23 Aug 2017 16:55:31 -0700
-Subject: [PATCH] scsi: lpfc: Fix loop mode target discovery
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The driver does not discover targets when in loop mode.
-
-The NLP type is correctly getting set when a fabric connection is
-detected but, not for loop. The unknown NLP type means that the driver
-does not issue a PRLI when in loop topology. Thus target discovery
-fails.
-
-Fix by checking the topology during discovery.  If it is loop, set the
-NLP FC4 type to FCP.
-
-Signed-off-by: Dick Kennedy <[email protected]>
-Signed-off-by: James Smart <[email protected]>
-Reviewed-by: Johannes Thumshirn <[email protected]>
-Signed-off-by: Martin K. Petersen <[email protected]>
-(cherry picked from commit 2877cbffb79ed121a6bcc5edbe629d3aba36cd29)
-Signed-off-by: Fabian Grünbichler <[email protected]>
----
- drivers/scsi/lpfc/lpfc_nportdisc.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c 
b/drivers/scsi/lpfc/lpfc_nportdisc.c
-index f74cb0142fd4..95b2b43ac37d 100644
---- a/drivers/scsi/lpfc/lpfc_nportdisc.c
-+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
-@@ -1724,6 +1724,9 @@ lpfc_cmpl_reglogin_reglogin_issue(struct lpfc_vport 
*vport,
-                               lpfc_nvme_update_localport(vport);
-                       }
- 
-+              } else if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) {
-+                      ndlp->nlp_fc4_type |= NLP_FC4_FCP;
-+
-               } else if (ndlp->nlp_fc4_type == 0) {
-                       rc = lpfc_ns_cmd(vport, SLI_CTNS_GFT_ID,
-                                        0, ndlp->nlp_DID);
--- 
-2.14.2
-
-- 
2.14.2


_______________________________________________
pve-devel mailing list
[email protected]
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to