diff options
author | graysky | 2020-05-08 13:05:25 -0400 |
---|---|---|
committer | graysky | 2020-05-08 13:05:25 -0400 |
commit | e1a52b3a056cecee91ccd38f88f8843dab78a3e0 (patch) | |
tree | dd5e912fdf7c11f9bb0371ed7478b5db8a8cb7a9 | |
parent | 340c4e2b4e84dc6ecbe9c8584d4ff9adfbda2603 (diff) | |
download | aur-e1a52b3a056cecee91ccd38f88f8843dab78a3e0.tar.gz |
Update to 5.6.12rc1-1
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch | 6 | ||||
-rw-r--r-- | 0002-kvm-ioapic-Restrict-lazy-EOI-update-to-edge-triggere.patch | 79 | ||||
-rw-r--r-- | PKGBUILD | 10 |
4 files changed, 98 insertions, 15 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-rc - pkgver = 5.6.9rc1 + pkgver = 5.6.12rc1 pkgrel = 1 url = https://www.kernel.org/ arch = x86_64 @@ -9,22 +9,24 @@ pkgbase = linux-rc makedepends = bc makedepends = libelf options = !strip - source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.6.9-rc1.xz - source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.6.9-rc1.sign - source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.6.8.tar.xz - source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.6.8.tar.sign + source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.6.12-rc1.xz + source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.6.12-rc1.sign + source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.6.11.tar.xz + source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.6.11.tar.sign source = config source = 0000-sphinx-workaround.patch source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch + source = 0002-kvm-ioapic-Restrict-lazy-EOI-update-to-edge-triggere.patch validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E - sha256sums = ee58cb5c58555c97d7b784e783368b6cfd45a646dec8f293d6931855beb51ff3 + sha256sums = c602f7d8941b7903850dd83fc041132db0109d4432e98f582c4761cdbeb8c6cd sha256sums = SKIP - sha256sums = 19e142ff07a2c8d10116074099b9d845682e74544a2b6c1641f7cb044ac282df + sha256sums = d6dd6cbe99429f088eddb248abce7832e8f8e45eb072cbf0d0f86b5b87221baa sha256sums = SKIP sha256sums = f392c9ecbb5177ea2573aaf22935322940ea2be0366f3fb9c9f861431f4aed21 sha256sums = 8cb21e0b3411327b627a9dd15b8eb773295a0d2782b1a41b2a8839d1b2f5778c - sha256sums = 76583cf912c01fdcbca445628ac6e4c03b7f22fda321ee0c7143f3703081650f + sha256sums = a91cd1560d0312f00d0c3d31009e1ca3de83aa133adc3ae9740e2996ef4c3c4b + sha256sums = 7e0f02ca30bf51a1862c4cfc4d09641ba76c5fabaf452883aa495c421008f124 pkgname = linux-rc pkgdesc = The release candidate kernel and modules diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index ef52d0d9a6d5..cf219767d2de 100644 --- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,7 +1,7 @@ -From 31d4f0d32196b85f66945ed01b60ed1b55ee5f54 Mon Sep 17 00:00:00 2001 +From e2679f79fbee1061a331bb2afd4e7c050ec21f76 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> Date: Mon, 16 Sep 2019 04:53:20 +0200 -Subject: [PATCH 1/4] ZEN: Add sysctl and CONFIG to disallow unprivileged +Subject: [PATCH 1/3] ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER Our default behavior continues to match the vanilla kernel. @@ -128,5 +128,5 @@ index 8eadadc478f9..c36ecd19562c 100644 static DEFINE_MUTEX(userns_state_mutex); -- -2.26.1 +2.26.2 diff --git a/0002-kvm-ioapic-Restrict-lazy-EOI-update-to-edge-triggere.patch b/0002-kvm-ioapic-Restrict-lazy-EOI-update-to-edge-triggere.patch new file mode 100644 index 000000000000..a950a72f5260 --- /dev/null +++ b/0002-kvm-ioapic-Restrict-lazy-EOI-update-to-edge-triggere.patch @@ -0,0 +1,79 @@ +From da707adaee9ff035c943178160be54a90de00cb3 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini <pbonzini@redhat.com> +Date: Mon, 4 May 2020 12:19:45 -0400 +Subject: [PATCH 2/3] kvm: ioapic: Restrict lazy EOI update to edge-triggered + interrupts + +Commit f458d039db7e ("kvm: ioapic: Lazy update IOAPIC EOI") introduces +the following infinite loop: + +BUG: stack guard page was hit at 000000008f595917 \ +(stack is 00000000bdefe5a4..00000000ae2b06f5) +kernel stack overflow (double-fault): 0000 [#1] SMP NOPTI +RIP: 0010:kvm_set_irq+0x51/0x160 [kvm] +Call Trace: + irqfd_resampler_ack+0x32/0x90 [kvm] + kvm_notify_acked_irq+0x62/0xd0 [kvm] + kvm_ioapic_update_eoi_one.isra.0+0x30/0x120 [kvm] + ioapic_set_irq+0x20e/0x240 [kvm] + kvm_ioapic_set_irq+0x5c/0x80 [kvm] + kvm_set_irq+0xbb/0x160 [kvm] + ? kvm_hv_set_sint+0x20/0x20 [kvm] + irqfd_resampler_ack+0x32/0x90 [kvm] + kvm_notify_acked_irq+0x62/0xd0 [kvm] + kvm_ioapic_update_eoi_one.isra.0+0x30/0x120 [kvm] + ioapic_set_irq+0x20e/0x240 [kvm] + kvm_ioapic_set_irq+0x5c/0x80 [kvm] + kvm_set_irq+0xbb/0x160 [kvm] + ? kvm_hv_set_sint+0x20/0x20 [kvm] +.... + +The re-entrancy happens because the irq state is the OR of +the interrupt state and the resamplefd state. That is, we don't +want to show the state as 0 until we've had a chance to set the +resamplefd. But if the interrupt has _not_ gone low then +ioapic_set_irq is invoked again, causing an infinite loop. + +This can only happen for a level-triggered interrupt, otherwise +irqfd_inject would immediately set the KVM_USERSPACE_IRQ_SOURCE_ID high +and then low. Fortunately, in the case of level-triggered interrupts the VMEXIT already happens because +TMR is set. Thus, fix the bug by restricting the lazy invocation +of the ack notifier to edge-triggered interrupts, the only ones that +need it. + +Tested-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> +Reported-by: borisvk@bstnet.org +Suggested-by: Paolo Bonzini <pbonzini@redhat.com> +Link: https://www.spinics.net/lists/kvm/msg213512.html +Fixes: f458d039db7e ("kvm: ioapic: Lazy update IOAPIC EOI") +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=207489 +Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> +--- + arch/x86/kvm/ioapic.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c +index 750ff0b29404..d057376bd3d3 100644 +--- a/arch/x86/kvm/ioapic.c ++++ b/arch/x86/kvm/ioapic.c +@@ -225,12 +225,12 @@ static int ioapic_set_irq(struct kvm_ioapic *ioapic, unsigned int irq, + } + + /* +- * AMD SVM AVIC accelerate EOI write and do not trap, +- * in-kernel IOAPIC will not be able to receive the EOI. +- * In this case, we do lazy update of the pending EOI when +- * trying to set IOAPIC irq. ++ * AMD SVM AVIC accelerate EOI write iff the interrupt is edge ++ * triggered, in which case the in-kernel IOAPIC will not be able ++ * to receive the EOI. In this case, we do a lazy update of the ++ * pending EOI when trying to set IOAPIC irq. + */ +- if (kvm_apicv_activated(ioapic->kvm)) ++ if (edge && kvm_apicv_activated(ioapic->kvm)) + ioapic_lazy_update_eoi(ioapic, irq); + + /* +-- +2.26.2 + @@ -7,7 +7,7 @@ _srcname=linux-5.6 _major=5.6 ### on initial release this is null otherwise it is the current stable subversion ### ie 1,2,3 corresponding $_major.1, $_major.3 etc. -_minor=8 +_minor=11 ### on initial release comment this out and set to =1 _minorc=$((_minor+1)) #_minorc=1 @@ -32,18 +32,20 @@ source=( config # the main kernel config file 0000-sphinx-workaround.patch 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch + 0002-kvm-ioapic-Restrict-lazy-EOI-update-to-edge-triggere.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) -sha256sums=('ee58cb5c58555c97d7b784e783368b6cfd45a646dec8f293d6931855beb51ff3' +sha256sums=('c602f7d8941b7903850dd83fc041132db0109d4432e98f582c4761cdbeb8c6cd' 'SKIP' - '19e142ff07a2c8d10116074099b9d845682e74544a2b6c1641f7cb044ac282df' + 'd6dd6cbe99429f088eddb248abce7832e8f8e45eb072cbf0d0f86b5b87221baa' 'SKIP' 'f392c9ecbb5177ea2573aaf22935322940ea2be0366f3fb9c9f861431f4aed21' '8cb21e0b3411327b627a9dd15b8eb773295a0d2782b1a41b2a8839d1b2f5778c' - '76583cf912c01fdcbca445628ac6e4c03b7f22fda321ee0c7143f3703081650f') + 'a91cd1560d0312f00d0c3d31009e1ca3de83aa133adc3ae9740e2996ef4c3c4b' + '7e0f02ca30bf51a1862c4cfc4d09641ba76c5fabaf452883aa495c421008f124') _kernelname=${pkgbase#linux} |