Compare commits
70 Commits
master
...
pve-kernel
Author | SHA1 | Date | |
---|---|---|---|
|
511b4b4393 | ||
|
403f9c3342 | ||
|
7e76e05428 | ||
|
1f316d97f5 | ||
|
6689bad81a | ||
|
c52b38d4c1 | ||
|
9ae490b531 | ||
|
9aea2a8582 | ||
|
74ff6ea27e | ||
|
383cc4b935 | ||
|
92ecb0dc4a | ||
|
e83375c7a4 | ||
|
71941be42c | ||
|
688dd00fb2 | ||
|
d7745ec6d3 | ||
|
f685c270c2 | ||
|
85116af6a4 | ||
|
3f3987d405 | ||
|
5d53aaf90c | ||
|
2cacd0fca4 | ||
|
e7be3bc9b1 | ||
|
3e80fdd8b1 | ||
|
3cd6c93ea3 | ||
|
928ebd9e9e | ||
|
749152cc40 | ||
|
32c96a9e46 | ||
|
81ff40a1f6 | ||
|
011ae0b915 | ||
|
2425182d60 | ||
|
90e18b45c8 | ||
|
0969dc7a3a | ||
|
4f0610f2b8 | ||
|
7b6cf206b5 | ||
|
051682a35d | ||
|
bafa9b7ca1 | ||
|
ecfcc52270 | ||
|
862a942d89 | ||
|
82650658f2 | ||
|
3c1c73bb62 | ||
|
074569d349 | ||
|
7c6813388e | ||
|
eafd579cc9 | ||
|
42adb8504b | ||
|
5aa9d0068e | ||
|
6e9b6a3eae | ||
|
9c6f52252f | ||
|
00163cc277 | ||
|
b3c9b5ae54 | ||
|
7abb5775ca | ||
|
15cba06a57 | ||
|
acfcf229bf | ||
|
442a3e9243 | ||
|
6a0e26366e | ||
|
52ca7a7fc5 | ||
|
16cc4bcb40 | ||
|
34c76b7752 | ||
|
58b67f303a | ||
|
90281c3c81 | ||
|
b24b578cd6 | ||
|
6ba8c6bc5d | ||
|
b2a761cbba | ||
|
3ef09f5906 | ||
|
94d096fde1 | ||
|
d753974f8a | ||
|
8af6fd0319 | ||
|
86df970f42 | ||
|
71090250db | ||
|
1f08d6d78b | ||
|
045bc2ba9d | ||
|
c523771b01 |
4
Makefile
4
Makefile
@ -4,9 +4,9 @@ KERNEL_MIN=15
|
||||
KERNEL_PATCHLEVEL=18
|
||||
# increment KREL if the ABI changes (abicheck target in debian/rules)
|
||||
# rebuild packages with new KREL and run 'make abiupdate'
|
||||
KREL=15
|
||||
KREL=30
|
||||
|
||||
PKGREL=40
|
||||
PKGREL=58
|
||||
|
||||
KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
|
||||
KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
|
||||
|
22756
abi-prev-4.15.18-14-pve
22756
abi-prev-4.15.18-14-pve
File diff suppressed because it is too large
Load Diff
22844
abi-prev-4.15.18-30-pve
Normal file
22844
abi-prev-4.15.18-30-pve
Normal file
File diff suppressed because it is too large
Load Diff
148
debian/changelog
vendored
148
debian/changelog
vendored
@ -1,3 +1,151 @@
|
||||
pve-kernel (4.15.18-58) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-107.108
|
||||
|
||||
* bump ABI to 4.15.18-30
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Fri, 12 Jun 2020 13:53:01 +0200
|
||||
|
||||
pve-kernel (4.15.18-57) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-102.103
|
||||
|
||||
* bump ABI to 4.15.18-29
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Mon, 18 May 2020 14:34:54 +0200
|
||||
|
||||
pve-kernel (4.15.18-56) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-97.98
|
||||
|
||||
* bump ABI to 4.15.18-28
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Wed, 08 Apr 2020 20:06:11 +0200
|
||||
|
||||
pve-kernel (4.15.18-55) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-92.93
|
||||
|
||||
* bump ABI to 4.15.18-27
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Tue, 17 Mar 2020 15:32:02 +0100
|
||||
|
||||
pve-kernel (4.15.18-54) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-89.89
|
||||
|
||||
* bump ABI to 4.15.18-26
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Sat, 15 Feb 2020 15:34:24 +0100
|
||||
|
||||
pve-kernel (4.15.18-53) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-87.87
|
||||
|
||||
* bump ABI to 4.15.18-25
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Wed, 05 Feb 2020 11:58:15 +0100
|
||||
|
||||
pve-kernel (4.15.18-52) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-73.82
|
||||
|
||||
* bump ABI to 4.15.18-24
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Thu, 05 Dec 2019 10:14:17 +0100
|
||||
|
||||
pve-kernel (4.15.18-51) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-69.78
|
||||
|
||||
* avoid bogus error message about PC Speaker module being already registered
|
||||
on boot
|
||||
|
||||
* bump ABI to 4.15.18-23
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Wed, 13 Nov 2019 11:20:34 +0100
|
||||
|
||||
pve-kernel (4.15.18-50) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-68.77
|
||||
|
||||
* fix #2458: fix issues with Linux KVM guest on old Intel CPUs
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Mon, 11 Nov 2019 15:28:06 +0100
|
||||
|
||||
pve-kernel (4.15.18-49) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-67.76
|
||||
|
||||
* bump ABI to 4.15.18-22
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Wed, 23 Oct 2019 20:39:55 +0200
|
||||
|
||||
pve-kernel (4.15.18-48) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-65.74
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Fri, 20 Sep 2019 11:28:30 +0200
|
||||
|
||||
pve-kernel (4.15.18-47) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-63.72
|
||||
|
||||
* bump ABI to 4.15.18-21
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Fri, 06 Sep 2019 16:08:32 +0200
|
||||
|
||||
pve-kernel (4.15.18-46) pve pmg; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-58.64
|
||||
|
||||
* bump ABI to 4.15.18-20
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Thu, 8 Aug 2019 10:42:06 +0200
|
||||
|
||||
pve-kernel (4.15.18-45) unstable; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-56.62
|
||||
|
||||
* bump ABI to 4.15.18-19
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Fri, 26 Jul 2019 09:34:08 +0200
|
||||
|
||||
pve-kernel (4.15.18-44) unstable; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-55.60
|
||||
|
||||
* bump ABI to 4.15.18-18
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Wed, 03 Jul 2019 11:19:13 +0200
|
||||
|
||||
pve-kernel (4.15.18-43) unstable; urgency=medium
|
||||
|
||||
* backport refinement for TCP SACK mitigations to avoid regressions for some
|
||||
clients
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Tue, 25 Jun 2019 17:59:49 +0200
|
||||
|
||||
pve-kernel (4.15.18-42) unstable; urgency=medium
|
||||
|
||||
* update sources to Ubuntu-4.15.0-53.57
|
||||
|
||||
* bump ABI to 4.15.18-17
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Fri, 21 Jun 2019 06:45:23 +0200
|
||||
|
||||
pve-kernel (4.15.18-41) unstable; urgency=medium
|
||||
|
||||
* update sources to Ubuntu-4.15.0-52.56
|
||||
|
||||
* backport: KVM: x86: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts
|
||||
|
||||
* backport: net: rds: force to destroy connection if t_sock is NULL in rds_tcp_kill_sock()
|
||||
|
||||
* bump ABI to 4.15.18-16
|
||||
|
||||
-- Proxmox Support Team <support@proxmox.com> Tue, 18 Jun 2019 07:36:54 +0200
|
||||
|
||||
pve-kernel (4.15.18-40) unstable; urgency=medium
|
||||
|
||||
* update to Ubuntu-4.15.0-51.55
|
||||
|
1
debian/rules
vendored
1
debian/rules
vendored
@ -27,6 +27,7 @@ PVE_CONFIG_OPTS= \
|
||||
-m CONFIG_CEPH_FS \
|
||||
-m CONFIG_BLK_DEV_NBD \
|
||||
-m CONFIG_BLK_DEV_RBD \
|
||||
-d CONFIG_SND_PCSP \
|
||||
-m CONFIG_BCACHE \
|
||||
-m CONFIG_JFS_FS \
|
||||
-m CONFIG_HFS_FS \
|
||||
|
@ -37,6 +37,7 @@ amdgpu/fiji_uvd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/fiji_vce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_ce_2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_k_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_k_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_me_2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
@ -56,6 +57,7 @@ amdgpu/polaris10_uvd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris10_vce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_ce_2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_k_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_k_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_me_2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
@ -75,6 +77,7 @@ amdgpu/polaris11_uvd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris11_vce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris12_ce_2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris12_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris12_k_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris12_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris12_me_2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
amdgpu/polaris12_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
|
||||
|
@ -15,6 +15,7 @@ Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to
|
||||
$KBUILD_BUILD_TIMESTAMP.
|
||||
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
scripts/mkcompile_h | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
@ -13,6 +13,7 @@ connected ports (for no real reason). To avoid problems with ARP
|
||||
we simply use the MAC of the first connected port.
|
||||
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
net/bridge/br_stp_if.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
@ -48,16 +48,17 @@ capability. Please contact me to have your devices added and save
|
||||
your customers the hassle of this boot option.
|
||||
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
.../admin-guide/kernel-parameters.txt | 9 ++
|
||||
drivers/pci/quirks.c | 101 ++++++++++++++++++
|
||||
2 files changed, 110 insertions(+)
|
||||
|
||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||
index 2970a6bcf858..935a805afe60 100644
|
||||
index 325a5dd7813d..a95cc0b61b29 100644
|
||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||
@@ -3125,6 +3125,15 @@
|
||||
@@ -3181,6 +3181,15 @@
|
||||
Also, it enforces the PCI Local Bus spec
|
||||
rule that those bits should be 0 in system reset
|
||||
events (useful for kexec/kdump cases).
|
||||
@ -74,10 +75,10 @@ index 2970a6bcf858..935a805afe60 100644
|
||||
Safety option to keep boot IRQs enabled. This
|
||||
should never be necessary.
|
||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
||||
index 2956ebbd83dc..8dceb0838970 100644
|
||||
index e5d1a00c481d..7ecd84506d8d 100644
|
||||
--- a/drivers/pci/quirks.c
|
||||
+++ b/drivers/pci/quirks.c
|
||||
@@ -3705,6 +3705,106 @@ static int __init pci_apply_final_quirks(void)
|
||||
@@ -3769,6 +3769,106 @@ static int __init pci_apply_final_quirks(void)
|
||||
|
||||
fs_initcall_sync(pci_apply_final_quirks);
|
||||
|
||||
@ -184,7 +185,7 @@ index 2956ebbd83dc..8dceb0838970 100644
|
||||
/*
|
||||
* Following are device-specific reset methods which can be used to
|
||||
* reset a single function if other methods (e.g. FLR, PM D0->D3) are
|
||||
@@ -4558,6 +4658,7 @@ static const struct pci_dev_acs_enabled {
|
||||
@@ -4664,6 +4764,7 @@ static const struct pci_dev_acs_enabled {
|
||||
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
|
||||
/* APM X-Gene */
|
||||
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
|
||||
|
@ -7,15 +7,16 @@ Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
virt/kvm/kvm_main.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||
index 238ddbc127e1..d7a24fd29144 100644
|
||||
index 706b13f0c698..c6749d154ebc 100644
|
||||
--- a/virt/kvm/kvm_main.c
|
||||
+++ b/virt/kvm/kvm_main.c
|
||||
@@ -77,7 +77,7 @@ module_param(halt_poll_ns, uint, 0644);
|
||||
@@ -78,7 +78,7 @@ module_param(halt_poll_ns, uint, 0644);
|
||||
EXPORT_SYMBOL_GPL(halt_poll_ns);
|
||||
|
||||
/* Default doubles per-vcpu halt_poll_ns. */
|
||||
|
@ -23,12 +23,13 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
(cherry picked from commit 63de8bd9328bf2a778fc277503da163ae3defa3c)
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
fs/ocfs2/aops.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
|
||||
index d1516327b787..256986aca8df 100644
|
||||
index 7de0c9562b70..209cec7efef4 100644
|
||||
--- a/fs/ocfs2/aops.c
|
||||
+++ b/fs/ocfs2/aops.c
|
||||
@@ -797,6 +797,7 @@ struct ocfs2_write_ctxt {
|
||||
@ -47,7 +48,7 @@ index d1516327b787..256986aca8df 100644
|
||||
new = NULL;
|
||||
unlock:
|
||||
spin_unlock(&oi->ip_lock);
|
||||
@@ -2256,7 +2258,7 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock,
|
||||
@@ -2277,7 +2279,7 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock,
|
||||
ue->ue_phys = desc->c_phys;
|
||||
|
||||
list_splice_tail_init(&wc->w_unwritten_list, &dwc->dw_zero_list);
|
||||
|
@ -65,6 +65,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
(cherry picked from commit 71a36944042b7d9dd71f6a5d1c5ea1c2353b5d42)
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
fs/ocfs2/alloc.c | 206 ++++++++++++++++++++++++++++++++++++++++++++---
|
||||
fs/ocfs2/alloc.h | 1 +
|
||||
@ -72,7 +73,7 @@ Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
3 files changed, 203 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
|
||||
index ab5105f9767e..2f2c76193f54 100644
|
||||
index 6b177de324c0..3760888f2e76 100644
|
||||
--- a/fs/ocfs2/alloc.c
|
||||
+++ b/fs/ocfs2/alloc.c
|
||||
@@ -165,6 +165,13 @@ static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
|
||||
@ -349,10 +350,10 @@ index 27b75cf32cfa..250bcacdf9e9 100644
|
||||
|
||||
/*
|
||||
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
|
||||
index 256986aca8df..e8e205bf2e41 100644
|
||||
index 209cec7efef4..1cf7ac84b70b 100644
|
||||
--- a/fs/ocfs2/aops.c
|
||||
+++ b/fs/ocfs2/aops.c
|
||||
@@ -2332,6 +2332,12 @@ static int ocfs2_dio_end_io_write(struct inode *inode,
|
||||
@@ -2353,6 +2353,12 @@ static int ocfs2_dio_end_io_write(struct inode *inode,
|
||||
|
||||
ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
|
||||
|
||||
|
@ -14,12 +14,13 @@ we remove before building. it would also be required by any module
|
||||
builds afterwards and is not shipped by Ubuntu's kernel packages either.
|
||||
|
||||
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
scripts/Makefile.build | 10 +---------
|
||||
1 file changed, 1 insertion(+), 9 deletions(-)
|
||||
|
||||
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
|
||||
index 1b07341eda2c..419fe6fdad17 100644
|
||||
index 5d72aa39d3c1..451546219dfc 100644
|
||||
--- a/scripts/Makefile.build
|
||||
+++ b/scripts/Makefile.build
|
||||
@@ -295,27 +295,19 @@ objtool_dep = $(objtool_obj) \
|
||||
|
168
patches/kernel/0008-KVM-Take-vcpu-mutex-outside-vcpu_load.patch
Normal file
168
patches/kernel/0008-KVM-Take-vcpu-mutex-outside-vcpu_load.patch
Normal file
@ -0,0 +1,168 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Christoffer Dall <christoffer.dall@linaro.org>
|
||||
Date: Mon, 4 Dec 2017 21:35:23 +0100
|
||||
Subject: [PATCH] KVM: Take vcpu->mutex outside vcpu_load
|
||||
|
||||
As we're about to call vcpu_load() from architecture-specific
|
||||
implementations of the KVM vcpu ioctls, but yet we access data
|
||||
structures protected by the vcpu->mutex in the generic code, factor
|
||||
this logic out from vcpu_load().
|
||||
|
||||
x86 is the only architecture which calls vcpu_load() outside of the main
|
||||
vcpu ioctl function, and these calls will no longer take the vcpu mutex
|
||||
following this patch. However, with the exception of
|
||||
kvm_arch_vcpu_postcreate (see below), the callers are either in the
|
||||
creation or destruction path of the VCPU, which means there cannot be
|
||||
any concurrent access to the data structure, because the file descriptor
|
||||
is not yet accessible, or is already gone.
|
||||
|
||||
kvm_arch_vcpu_postcreate makes the newly created vcpu potentially
|
||||
accessible by other in-kernel threads through the kvm->vcpus array, and
|
||||
we therefore take the vcpu mutex in this case directly.
|
||||
|
||||
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit ec7660ccdd2b71d8c7f0243f8590253713e9b75d)
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
arch/x86/kvm/vmx.c | 4 +---
|
||||
arch/x86/kvm/x86.c | 16 ++++++----------
|
||||
include/linux/kvm_host.h | 2 +-
|
||||
virt/kvm/kvm_main.c | 17 ++++++-----------
|
||||
4 files changed, 14 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
|
||||
index 6875c8d13052..5dc2144a0991 100644
|
||||
--- a/arch/x86/kvm/vmx.c
|
||||
+++ b/arch/x86/kvm/vmx.c
|
||||
@@ -10017,10 +10017,8 @@ static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs)
|
||||
static void vmx_free_vcpu_nested(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
struct vcpu_vmx *vmx = to_vmx(vcpu);
|
||||
- int r;
|
||||
|
||||
- r = vcpu_load(vcpu);
|
||||
- BUG_ON(r);
|
||||
+ vcpu_load(vcpu);
|
||||
vmx_switch_vmcs(vcpu, &vmx->vmcs01);
|
||||
free_nested(vmx);
|
||||
vcpu_put(vcpu);
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index 960b14ba645e..6b1e434ceaf8 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -8061,17 +8061,13 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
|
||||
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
- int r;
|
||||
-
|
||||
vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
|
||||
kvm_vcpu_mtrr_init(vcpu);
|
||||
- r = vcpu_load(vcpu);
|
||||
- if (r)
|
||||
- return r;
|
||||
+ vcpu_load(vcpu);
|
||||
kvm_vcpu_reset(vcpu, false);
|
||||
kvm_mmu_setup(vcpu);
|
||||
vcpu_put(vcpu);
|
||||
- return r;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
@@ -8081,13 +8077,15 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
||||
|
||||
kvm_hv_vcpu_postcreate(vcpu);
|
||||
|
||||
- if (vcpu_load(vcpu))
|
||||
+ if (mutex_lock_killable(&vcpu->mutex))
|
||||
return;
|
||||
+ vcpu_load(vcpu);
|
||||
msr.data = 0x0;
|
||||
msr.index = MSR_IA32_TSC;
|
||||
msr.host_initiated = true;
|
||||
kvm_write_tsc(vcpu, &msr);
|
||||
vcpu_put(vcpu);
|
||||
+ mutex_unlock(&vcpu->mutex);
|
||||
|
||||
if (!kvmclock_periodic_sync)
|
||||
return;
|
||||
@@ -8474,9 +8472,7 @@ int kvm_arch_post_init_vm(struct kvm *kvm)
|
||||
|
||||
static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
- int r;
|
||||
- r = vcpu_load(vcpu);
|
||||
- BUG_ON(r);
|
||||
+ vcpu_load(vcpu);
|
||||
kvm_mmu_unload(vcpu);
|
||||
vcpu_put(vcpu);
|
||||
}
|
||||
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
|
||||
index f182bbfb0ac5..f8b7ac63219d 100644
|
||||
--- a/include/linux/kvm_host.h
|
||||
+++ b/include/linux/kvm_host.h
|
||||
@@ -560,7 +560,7 @@ static inline int kvm_vcpu_get_idx(struct kvm_vcpu *vcpu)
|
||||
int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id);
|
||||
void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
|
||||
|
||||
-int __must_check vcpu_load(struct kvm_vcpu *vcpu);
|
||||
+void vcpu_load(struct kvm_vcpu *vcpu);
|
||||
void vcpu_put(struct kvm_vcpu *vcpu);
|
||||
|
||||
#ifdef __KVM_HAVE_IOAPIC
|
||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||
index c6749d154ebc..66998264619b 100644
|
||||
--- a/virt/kvm/kvm_main.c
|
||||
+++ b/virt/kvm/kvm_main.c
|
||||
@@ -172,17 +172,12 @@ bool kvm_is_reserved_pfn(kvm_pfn_t pfn)
|
||||
/*
|
||||
* Switches to specified vcpu, until a matching vcpu_put()
|
||||
*/
|
||||
-int vcpu_load(struct kvm_vcpu *vcpu)
|
||||
+void vcpu_load(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
- int cpu;
|
||||
-
|
||||
- if (mutex_lock_killable(&vcpu->mutex))
|
||||
- return -EINTR;
|
||||
- cpu = get_cpu();
|
||||
+ int cpu = get_cpu();
|
||||
preempt_notifier_register(&vcpu->preempt_notifier);
|
||||
kvm_arch_vcpu_load(vcpu, cpu);
|
||||
put_cpu();
|
||||
- return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vcpu_load);
|
||||
|
||||
@@ -192,7 +187,6 @@ void vcpu_put(struct kvm_vcpu *vcpu)
|
||||
kvm_arch_vcpu_put(vcpu);
|
||||
preempt_notifier_unregister(&vcpu->preempt_notifier);
|
||||
preempt_enable();
|
||||
- mutex_unlock(&vcpu->mutex);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vcpu_put);
|
||||
|
||||
@@ -2786,9 +2780,9 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
||||
#endif
|
||||
|
||||
|
||||
- r = vcpu_load(vcpu);
|
||||
- if (r)
|
||||
- return r;
|
||||
+ if (mutex_lock_killable(&vcpu->mutex))
|
||||
+ return -EINTR;
|
||||
+ vcpu_load(vcpu);
|
||||
switch (ioctl) {
|
||||
case KVM_RUN: {
|
||||
struct pid *oldpid;
|
||||
@@ -2961,6 +2955,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
||||
}
|
||||
out:
|
||||
vcpu_put(vcpu);
|
||||
+ mutex_unlock(&vcpu->mutex);
|
||||
kfree(fpu);
|
||||
kfree(kvm_sregs);
|
||||
return r;
|
@ -1,55 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Habkost <ehabkost@redhat.com>
|
||||
Date: Mon, 17 Dec 2018 22:34:18 -0200
|
||||
Subject: [PATCH] kvm: x86: Add AMD's EX_CFG to the list of ignored MSRs
|
||||
|
||||
Some guests OSes (including Windows 10) write to MSR 0xc001102c
|
||||
on some cases (possibly while trying to apply a CPU errata).
|
||||
Make KVM ignore reads and writes to that MSR, so the guest won't
|
||||
crash.
|
||||
|
||||
The MSR is documented as "Execution Unit Configuration (EX_CFG)",
|
||||
at AMD's "BIOS and Kernel Developer's Guide (BKDG) for AMD Family
|
||||
15h Models 00h-0Fh Processors".
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
arch/x86/include/asm/msr-index.h | 1 +
|
||||
arch/x86/kvm/x86.c | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
|
||||
index 7ca92f9b5eae..4eb78a908544 100644
|
||||
--- a/arch/x86/include/asm/msr-index.h
|
||||
+++ b/arch/x86/include/asm/msr-index.h
|
||||
@@ -382,6 +382,7 @@
|
||||
#define MSR_F15H_NB_PERF_CTR 0xc0010241
|
||||
#define MSR_F15H_PTSC 0xc0010280
|
||||
#define MSR_F15H_IC_CFG 0xc0011021
|
||||
+#define MSR_F15H_EX_CFG 0xc001102c
|
||||
|
||||
/* Fam 10h MSRs */
|
||||
#define MSR_FAM10H_MMIO_CONF_BASE 0xc0010058
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index ac17f53812af..1154795459de 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -2240,6 +2240,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_AMD64_PATCH_LOADER:
|
||||
case MSR_AMD64_BU_CFG2:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
+ case MSR_F15H_EX_CFG:
|
||||
break;
|
||||
|
||||
case MSR_IA32_UCODE_REV:
|
||||
@@ -2528,6 +2529,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_AMD64_BU_CFG2:
|
||||
case MSR_IA32_PERF_CTL:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
+ case MSR_F15H_EX_CFG:
|
||||
msr_info->data = 0;
|
||||
break;
|
||||
case MSR_K7_EVNTSEL0 ... MSR_K7_EVNTSEL3:
|
@ -0,0 +1,40 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jim Mattson <jmattson@google.com>
|
||||
Date: Tue, 30 Oct 2018 12:20:21 -0700
|
||||
Subject: [PATCH] kvm: x86: Don't modify MSR_PLATFORM_INFO on vCPU reset
|
||||
|
||||
If userspace has provided a different value for this MSR (e.g with the
|
||||
turbo bits set), the userspace-provided value should survive a vCPU
|
||||
reset. For backwards compatibility, MSR_PLATFORM_INFO is initialized
|
||||
in kvm_arch_vcpu_setup.
|
||||
|
||||
Signed-off-by: Jim Mattson <jmattson@google.com>
|
||||
Reviewed-by: Drew Schmitt <dasch@google.com>
|
||||
Cc: Abhiroop Dabral <adabral@paloaltonetworks.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit e53d88af63ab4104e1226b8f9959f1e9903da10b)
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
arch/x86/kvm/x86.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index 6b1e434ceaf8..93bc3504d39e 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -8062,6 +8062,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
|
||||
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
|
||||
+ vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
|
||||
kvm_vcpu_mtrr_init(vcpu);
|
||||
vcpu_load(vcpu);
|
||||
kvm_vcpu_reset(vcpu, false);
|
||||
@@ -8157,7 +8158,6 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
|
||||
kvm_pmu_reset(vcpu);
|
||||
vcpu->arch.smbase = 0x30000;
|
||||
|
||||
- vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
|
||||
vcpu->arch.msr_misc_features_enables = 0;
|
||||
|
||||
vcpu->arch.xcr0 = XFEATURE_MASK_FP;
|
@ -0,0 +1,22 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
Date: Fri, 6 Sep 2019 13:04:30 +0200
|
||||
Subject: [PATCH] ntb test: remove unused conflicting SZ_4G define
|
||||
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
drivers/ntb/test/ntb_perf.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c
|
||||
index 427112cf101a..1f8ee33a07a2 100644
|
||||
--- a/drivers/ntb/test/ntb_perf.c
|
||||
+++ b/drivers/ntb/test/ntb_perf.c
|
||||
@@ -74,7 +74,6 @@
|
||||
#define MAX_SRCS 32
|
||||
#define DMA_OUT_RESOURCE_TO msecs_to_jiffies(50)
|
||||
#define DMA_RETRIES 20
|
||||
-#define SZ_4G (1ULL << 32)
|
||||
#define MAX_SEG_ORDER 20 /* no larger than 1M for kmalloc buffer */
|
||||
#define PIDX NTB_DEF_PEER_IDX
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 18e103f8c89eef5b91b6741643e331000c7359d8
|
||||
Subproject commit 0402610fed7152bb5c2689b1740d40b17a78cfa7
|
@ -1 +1 @@
|
||||
Subproject commit 5e3e80687effd11a44a1cc6690eb532099b32a72
|
||||
Subproject commit 020d1fc78cc56f328e9c45dc066ec921482440bf
|
Loading…
Reference in New Issue
Block a user