mirror of
https://git.proxmox.com/git/pve-kernel
synced 2025-04-28 11:21:12 +00:00
update submodule and rebase patches for Ubuntu-6.11.0-17.17
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
e9ea280b7b
commit
4320d769ef
@ -55,7 +55,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
2 files changed, 111 insertions(+)
|
||||
|
||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||
index 89f899cccf3875e0c085d33d1129a9ec0482a953..dfe0d1e400e2c8f62770510cb7ad35c5060535cf 100644
|
||||
index 5ea6b2d54edaff9b7efa20235de92970cabcf769..e36ab4a38709f697860e785c1eb2e8c44f9f7b64 100644
|
||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||
@@ -4422,6 +4422,15 @@
|
||||
@ -75,10 +75,10 @@ index 89f899cccf3875e0c085d33d1129a9ec0482a953..dfe0d1e400e2c8f62770510cb7ad35c5
|
||||
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 ba021ba458a7d0e5b92a0a87a50ef18805c48246..bc35fd0e9b4beb10edaf71c6a854be7e01aac336 100644
|
||||
index bf02ee61a933403deba8ba7063d1732fc3ed540e..113e93b623616d787ad1b4d7619a2921069d587b 100644
|
||||
--- a/drivers/pci/quirks.c
|
||||
+++ b/drivers/pci/quirks.c
|
||||
@@ -287,6 +287,106 @@ static int __init pci_apply_final_quirks(void)
|
||||
@@ -300,6 +300,106 @@ static int __init pci_apply_final_quirks(void)
|
||||
}
|
||||
fs_initcall_sync(pci_apply_final_quirks);
|
||||
|
||||
@ -185,7 +185,7 @@ index ba021ba458a7d0e5b92a0a87a50ef18805c48246..bc35fd0e9b4beb10edaf71c6a854be7e
|
||||
/*
|
||||
* Decoding should be disabled for a PCI device during BAR sizing to avoid
|
||||
* conflict. But doing so may cause problems on host bridge and perhaps other
|
||||
@@ -5100,6 +5200,8 @@ static const struct pci_dev_acs_enabled {
|
||||
@@ -5121,6 +5221,8 @@ static const struct pci_dev_acs_enabled {
|
||||
{ PCI_VENDOR_ID_CAVIUM, 0xA060, pci_quirk_mf_endpoint_acs },
|
||||
/* APM X-Gene */
|
||||
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||
index cb2b78e92910fb1d6ebed0b73cf359e866f0a06b..ebfb1def4662c4c16f672f8b832ee510fa3770cd 100644
|
||||
index 16f0c3566f16141af8f5cfeb5dc6b15838ff6ecc..e232b463912db788345e0d38b3128cbee30948ae 100644
|
||||
--- a/virt/kvm/kvm_main.c
|
||||
+++ b/virt/kvm/kvm_main.c
|
||||
@@ -80,7 +80,7 @@ module_param(halt_poll_ns, uint, 0644);
|
||||
|
@ -14,10 +14,10 @@ Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||
index f66e614078832842e903fc2ee792cd89b8a3572f..07ffd47a2010e7735c72588afc097132b062f764 100644
|
||||
index 25f20c5cc8f55fca8c726df31d8433025e15ebb4..d0fa7a5768d555fce321533a2d46703d647d7474 100644
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -10672,7 +10672,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list)
|
||||
@@ -10680,7 +10680,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list)
|
||||
if (time_after(jiffies, warning_time +
|
||||
READ_ONCE(netdev_unregister_timeout_secs) * HZ)) {
|
||||
list_for_each_entry(dev, list, todo_list) {
|
||||
|
@ -73,15 +73,15 @@ maintenance burden is high.
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
---
|
||||
arch/x86/kvm/cpuid.c | 6 ++++++
|
||||
arch/x86/kvm/cpuid.h | 2 ++
|
||||
arch/x86/kvm/cpuid.h | 3 +++
|
||||
arch/x86/kvm/x86.c | 13 +++++++++++++
|
||||
3 files changed, 21 insertions(+)
|
||||
3 files changed, 22 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
|
||||
index 2617be544480aaf78d21d89f5f0e978a0715e0d6..b6892645c4cde238923062e3f71df21d68cc201d 100644
|
||||
index be2baf851ec7d63a2095247d828f390b9757f905..dc73965aa73b21d26b4cf039336da3ca38e89bc6 100644
|
||||
--- a/arch/x86/kvm/cpuid.c
|
||||
+++ b/arch/x86/kvm/cpuid.c
|
||||
@@ -269,6 +269,12 @@ static u64 cpuid_get_supported_xcr0(struct kvm_cpuid_entry2 *entries, int nent)
|
||||
@@ -290,6 +290,12 @@ static u64 cpuid_get_supported_xcr0(struct kvm_cpuid_entry2 *entries, int nent)
|
||||
return (best->eax | ((u64)best->edx << 32)) & kvm_caps.supported_xcr0;
|
||||
}
|
||||
|
||||
@ -95,20 +95,22 @@ index 2617be544480aaf78d21d89f5f0e978a0715e0d6..b6892645c4cde238923062e3f71df21d
|
||||
int nent)
|
||||
{
|
||||
diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h
|
||||
index 41697cca354e6bc3cb7787602d440eb26e630e5b..0e46c4555311d02b6ec9eba7f33b292c3562b0ee 100644
|
||||
index ad479cfb91bc7bc5d400d2c098536abb4d4babe5..e55eecb2f3646ff7ef63c107c5cc5481fabb8a51 100644
|
||||
--- a/arch/x86/kvm/cpuid.h
|
||||
+++ b/arch/x86/kvm/cpuid.h
|
||||
@@ -32,6 +32,8 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
|
||||
@@ -32,7 +32,10 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
|
||||
bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
|
||||
u32 *ecx, u32 *edx, bool exact_only);
|
||||
|
||||
+bool vcpu_supports_xsave_pkru(struct kvm_vcpu *vcpu);
|
||||
+
|
||||
void __init kvm_init_xstate_sizes(void);
|
||||
+
|
||||
u32 xstate_required_size(u64 xstate_bv, bool compacted);
|
||||
|
||||
int cpuid_query_maxphyaddr(struct kvm_vcpu *vcpu);
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index c983c8e434b8b8eadc8571aebeb06c1b694e134f..c7c3d04198c6c7f88f97e122bfe78b857f26cb26 100644
|
||||
index 3667ba359e63579eaff36fea92bf19a84e5df592..4d10fc1a9b4114d1e2edf133717f307043560263 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -5633,6 +5633,19 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||
index 555301f45bec5ef12290a48095c2cfdaf05602db..34c8b02ca7878e0b1803a07f2f6e5c6c0039a9f8 100644
|
||||
index b857633622ea8550299554e211b84c48196bf902..5cb3b52b350c3d6bd627a29e6000ab10b58fd6e1 100644
|
||||
--- a/drivers/iommu/intel/iommu.c
|
||||
+++ b/drivers/iommu/intel/iommu.c
|
||||
@@ -228,6 +228,7 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
||||
@ -32,7 +32,7 @@ index 555301f45bec5ef12290a48095c2cfdaf05602db..34c8b02ca7878e0b1803a07f2f6e5c6c
|
||||
} else {
|
||||
pr_notice("Unknown option - '%s'\n", str);
|
||||
}
|
||||
@@ -2153,7 +2157,7 @@ static bool device_rmrr_is_relaxable(struct device *dev)
|
||||
@@ -2165,7 +2169,7 @@ static bool device_rmrr_is_relaxable(struct device *dev)
|
||||
return false;
|
||||
|
||||
pdev = to_pci_dev(dev);
|
||||
|
@ -24,10 +24,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
|
||||
index 5ab2c92c7331deba414de1077b3ea0eb58920d66..1cd03c985fdc4f72ea774d8d4457400230409430 100644
|
||||
index 22513133925e0ca5a889ae6105a829af3957778c..1435e5b0a7f604bd0146b7feb5dd06a4516925a1 100644
|
||||
--- a/arch/x86/kvm/svm/svm.c
|
||||
+++ b/arch/x86/kvm/svm/svm.c
|
||||
@@ -5174,6 +5174,7 @@ static __init void svm_set_cpu_caps(void)
|
||||
@@ -5176,6 +5176,7 @@ static __init void svm_set_cpu_caps(void)
|
||||
if (nested) {
|
||||
kvm_cpu_cap_set(X86_FEATURE_SVM);
|
||||
kvm_cpu_cap_set(X86_FEATURE_VMCBCLEAN);
|
||||
|
@ -30,10 +30,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mm/memfd.c b/mm/memfd.c
|
||||
index e7b7c5294d59635539ee75a165a3b6ae171a632e..3a1b073ad22c9f64b0dc3ca0823e6569072936d3 100644
|
||||
index c17c3ea701a17e9f3a652e77ba60ca9c58b0ca8e..63340d874f1e4aa139b3cce8e4fffcffc0106884 100644
|
||||
--- a/mm/memfd.c
|
||||
+++ b/mm/memfd.c
|
||||
@@ -316,7 +316,7 @@ static int check_sysctl_memfd_noexec(unsigned int *flags)
|
||||
@@ -318,7 +318,7 @@ static int check_sysctl_memfd_noexec(unsigned int *flags)
|
||||
}
|
||||
|
||||
if (!(*flags & MFD_NOEXEC_SEAL) && sysctl >= MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED) {
|
||||
|
@ -1,45 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jens Axboe <axboe@kernel.dk>
|
||||
Date: Tue, 10 Sep 2024 08:30:57 -0600
|
||||
Subject: [PATCH] io_uring/rw: treat -EOPNOTSUPP for IOCB_NOWAIT like -EAGAIN
|
||||
|
||||
Some file systems, ocfs2 in this case, will return -EOPNOTSUPP for
|
||||
an IOCB_NOWAIT read/write attempt. While this can be argued to be
|
||||
correct, the usual return value for something that requires blocking
|
||||
issue is -EAGAIN.
|
||||
|
||||
A refactoring io_uring commit dropped calling kiocb_done() for
|
||||
negative return values, which is otherwise where we already do that
|
||||
transformation. To ensure we catch it in both spots, check it in
|
||||
__io_read() itself as well.
|
||||
|
||||
Reported-by: Robert Sander <r.sander@heinlein-support.de>
|
||||
Link: https://fosstodon.org/@gurubert@mastodon.gurubert.de/113112431889638440
|
||||
Cc: stable@vger.kernel.org
|
||||
Fixes: a08d195b586a ("io_uring/rw: split io_read() into a helper")
|
||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
(cherry picked from commit c0a9d496e0fece67db777bd48550376cf2960c47)
|
||||
Signed-off-by: Daniel Kral <d.kral@proxmox.com>
|
||||
---
|
||||
io_uring/rw.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/io_uring/rw.c b/io_uring/rw.c
|
||||
index c004d21e2f12e39d336339e0340f431eddcec597..d85e2d41a992b82622571c764325af73c12b1e75 100644
|
||||
--- a/io_uring/rw.c
|
||||
+++ b/io_uring/rw.c
|
||||
@@ -855,6 +855,14 @@ static int __io_read(struct io_kiocb *req, unsigned int issue_flags)
|
||||
|
||||
ret = io_iter_do_read(rw, &io->iter);
|
||||
|
||||
+ /*
|
||||
+ * Some file systems like to return -EOPNOTSUPP for an IOCB_NOWAIT
|
||||
+ * issue, even though they should be returning -EAGAIN. To be safe,
|
||||
+ * retry from blocking context for either.
|
||||
+ */
|
||||
+ if (ret == -EOPNOTSUPP && force_nonblock)
|
||||
+ ret = -EAGAIN;
|
||||
+
|
||||
if (ret == -EAGAIN || (req->flags & REQ_F_REISSUE)) {
|
||||
req->flags &= ~REQ_F_REISSUE;
|
||||
/* If we can poll, just do that. */
|
@ -0,0 +1,97 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||
Date: Mon, 25 Nov 2024 11:10:35 +0100
|
||||
Subject: [PATCH] Revert "UBUNTU: SAUCE: iommu/intel: disable DMAR for SKL
|
||||
integrated gfx"
|
||||
|
||||
Some of our users use the iGPU for PCI-passthrough on those
|
||||
platforms, which seems broken with this commit added.
|
||||
https://forum.proxmox.com/threads/.157266
|
||||
|
||||
This reverts both, commit b310f5f58c83 ("UBUNTU: SAUCE: iommu/intel:
|
||||
disable DMAR for SKL integrated gfx") and also commit 252bf1619fd5
|
||||
("UBUNTU: SAUCE: iommu/intel: disable DMAR for KBL and CML integrated
|
||||
gfx").
|
||||
---
|
||||
drivers/iommu/intel/iommu.c | 68 -------------------------------------
|
||||
1 file changed, 68 deletions(-)
|
||||
|
||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||
index 5cb3b52b350c3d6bd627a29e6000ab10b58fd6e1..9d2de5cdaeaf5f19d7fea14a21b018033e275ac7 100644
|
||||
--- a/drivers/iommu/intel/iommu.c
|
||||
+++ b/drivers/iommu/intel/iommu.c
|
||||
@@ -4780,74 +4780,6 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
||||
|
||||
-/* SKL */
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1906, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1913, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x190E, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1915, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1902, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x190A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x190B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1917, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1916, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1921, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191E, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1912, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191D, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1923, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1926, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1927, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x192A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x192B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x192D, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1932, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x193A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x193B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x193D, quirk_iommu_igfx);
|
||||
-
|
||||
-/* KBL */
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5902, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5906, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5908, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x590A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x590B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x590E, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5912, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5913, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5915, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5916, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5917, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x591A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x591B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x591D, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x591E, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5921, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5923, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5926, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5927, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x593B, quirk_iommu_igfx);
|
||||
-
|
||||
-/* CML */
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9B21, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BA2, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BA4, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BA5, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BA8, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BAA, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BAC, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BC2, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BC4, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BC5, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BC6, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BC8, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BE6, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BF6, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9B41, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BCA, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9BCC, quirk_iommu_igfx);
|
||||
-
|
||||
/* disable IPU dmar support */
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_iommu_ipu);
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
||||
Date: Tue, 5 Nov 2024 10:02:34 -0600
|
||||
Subject: [PATCH] x86/CPU/AMD: Clear virtualized VMLOAD/VMSAVE on Zen4 client
|
||||
|
||||
A number of Zen4 client SoCs advertise the ability to use virtualized
|
||||
VMLOAD/VMSAVE, but using these instructions is reported to be a cause
|
||||
of a random host reboot.
|
||||
|
||||
These instructions aren't intended to be advertised on Zen4 client
|
||||
so clear the capability.
|
||||
|
||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
||||
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
|
||||
Cc: stable@vger.kernel.org
|
||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219009
|
||||
(cherry picked from commit a5ca1dc46a6b610dd4627d8b633d6c84f9724ef0)
|
||||
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
|
||||
---
|
||||
arch/x86/kernel/cpu/amd.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
|
||||
index 1e0fe5f8ab84e478294b62267176ae01fa540f31..ee87f997d31f90793e759a81e7c3049aadd0f782 100644
|
||||
--- a/arch/x86/kernel/cpu/amd.c
|
||||
+++ b/arch/x86/kernel/cpu/amd.c
|
||||
@@ -924,6 +924,17 @@ static void init_amd_zen4(struct cpuinfo_x86 *c)
|
||||
{
|
||||
if (!cpu_has(c, X86_FEATURE_HYPERVISOR))
|
||||
msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
|
||||
+
|
||||
+ /*
|
||||
+ * These Zen4 SoCs advertise support for virtualized VMLOAD/VMSAVE
|
||||
+ * in some BIOS versions but they can lead to random host reboots.
|
||||
+ */
|
||||
+ switch (c->x86_model) {
|
||||
+ case 0x18 ... 0x1f:
|
||||
+ case 0x60 ... 0x7f:
|
||||
+ clear_cpu_cap(c, X86_FEATURE_V_VMSAVE_VMLOAD);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
static void init_amd_zen5(struct cpuinfo_x86 *c)
|
@ -1,68 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Gunthorpe <jgg@nvidia.com>
|
||||
Date: Wed, 16 Oct 2024 20:52:33 -0300
|
||||
Subject: [PATCH] PCI: Fix pci_enable_acs() support for the ACS quirks
|
||||
|
||||
[ Upstream commit f3c3ccc4fe49dbc560b01d16bebd1b116c46c2b4 ]
|
||||
|
||||
There are ACS quirks that hijack the normal ACS processing and deliver to
|
||||
to special quirk code. The enable path needs to call
|
||||
pci_dev_specific_enable_acs() and then pci_dev_specific_acs_enabled() will
|
||||
report the hidden ACS state controlled by the quirk.
|
||||
|
||||
The recent rework got this out of order and we should try to call
|
||||
pci_dev_specific_enable_acs() regardless of any actual ACS support in the
|
||||
device.
|
||||
|
||||
As before command line parameters that effect standard PCI ACS don't
|
||||
interact with the quirk versions, including the new config_acs= option.
|
||||
|
||||
Link: https://lore.kernel.org/r/0-v1-f96b686c625b+124-pci_acs_quirk_fix_jgg@nvidia.com
|
||||
Fixes: 47c8846a49ba ("PCI: Extend ACS configurability")
|
||||
Reported-by: Jiri Slaby <jirislaby@kernel.org>
|
||||
Closes: https://lore.kernel.org/all/e89107da-ac99-4d3a-9527-a4df9986e120@kernel.org
|
||||
Closes: https://bugzilla.suse.com/show_bug.cgi?id=1229019
|
||||
Tested-by: Steffen Dirkwinkel <me@steffen.cc>
|
||||
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
|
||||
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
||||
(cherry picked from commit 8803132f857d1959f99c6ef98cf74776a52987e4)
|
||||
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||
---
|
||||
drivers/pci/pci.c | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
|
||||
index ffaaca0978cbc95fbb7566e9700b375cdb4940cc..a89436d481f0702d57516b378d282808766410c6 100644
|
||||
--- a/drivers/pci/pci.c
|
||||
+++ b/drivers/pci/pci.c
|
||||
@@ -1067,8 +1067,15 @@ static void pci_std_enable_acs(struct pci_dev *dev, struct pci_acs *caps)
|
||||
static void pci_enable_acs(struct pci_dev *dev)
|
||||
{
|
||||
struct pci_acs caps;
|
||||
+ bool enable_acs = false;
|
||||
int pos;
|
||||
|
||||
+ /* If an iommu is present we start with kernel default caps */
|
||||
+ if (pci_acs_enable) {
|
||||
+ if (pci_dev_specific_enable_acs(dev))
|
||||
+ enable_acs = true;
|
||||
+ }
|
||||
+
|
||||
pos = dev->acs_cap;
|
||||
if (!pos)
|
||||
return;
|
||||
@@ -1077,11 +1084,8 @@ static void pci_enable_acs(struct pci_dev *dev)
|
||||
pci_read_config_word(dev, pos + PCI_ACS_CTRL, &caps.ctrl);
|
||||
caps.fw_ctrl = caps.ctrl;
|
||||
|
||||
- /* If an iommu is present we start with kernel default caps */
|
||||
- if (pci_acs_enable) {
|
||||
- if (pci_dev_specific_enable_acs(dev))
|
||||
- pci_std_enable_acs(dev, &caps);
|
||||
- }
|
||||
+ if (enable_acs)
|
||||
+ pci_std_enable_acs(dev, &caps);
|
||||
|
||||
/*
|
||||
* Always apply caps from the command line, even if there is no iommu.
|
@ -1,53 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||
Date: Mon, 25 Nov 2024 11:10:35 +0100
|
||||
Subject: [PATCH] Revert "UBUNTU: SAUCE: iommu/intel: disable DMAR for SKL
|
||||
integrated gfx"
|
||||
|
||||
Some of our users use the iGPU for PCI-passthrough on those
|
||||
plattforms, which seems broken with this commit added.
|
||||
https://forum.proxmox.com/threads/.157266
|
||||
|
||||
This reverts commit b310f5f58c83756fc164f7d391d76f0df9cc65c3.
|
||||
---
|
||||
drivers/iommu/intel/iommu.c | 27 ---------------------------
|
||||
1 file changed, 27 deletions(-)
|
||||
|
||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||
index 34c8b02ca7878e0b1803a07f2f6e5c6c0039a9f8..a27cbc22148fa3123efbe4d0188bccc4731b7b87 100644
|
||||
--- a/drivers/iommu/intel/iommu.c
|
||||
+++ b/drivers/iommu/intel/iommu.c
|
||||
@@ -4766,33 +4766,6 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
||||
|
||||
-/* SKL */
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1906, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1913, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x190E, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1915, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1902, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x190A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x190B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1917, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1916, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1921, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191E, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1912, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x191D, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1923, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1926, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1927, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x192A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x192B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x192D, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1932, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x193A, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x193B, quirk_iommu_igfx);
|
||||
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x193D, quirk_iommu_igfx);
|
||||
-
|
||||
/* disable IPU dmar support */
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_iommu_ipu);
|
||||
|
@ -1,165 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Sean Christopherson <seanjc@google.com>
|
||||
Date: Tue, 10 Dec 2024 17:32:58 -0800
|
||||
Subject: [PATCH] KVM: x86: Cache CPUID.0xD XSTATE offsets+sizes during module
|
||||
init
|
||||
|
||||
Snapshot the output of CPUID.0xD.[1..n] during kvm.ko initiliaization to
|
||||
avoid the overead of CPUID during runtime. The offset, size, and metadata
|
||||
for CPUID.0xD.[1..n] sub-leaves does not depend on XCR0 or XSS values, i.e.
|
||||
is constant for a given CPU, and thus can be cached during module load.
|
||||
|
||||
On Intel's Emerald Rapids, CPUID is *wildly* expensive, to the point where
|
||||
recomputing XSAVE offsets and sizes results in a 4x increase in latency of
|
||||
nested VM-Enter and VM-Exit (nested transitions can trigger
|
||||
xstate_required_size() multiple times per transition), relative to using
|
||||
cached values. The issue is easily visible by running `perf top` while
|
||||
triggering nested transitions: kvm_update_cpuid_runtime() shows up at a
|
||||
whopping 50%.
|
||||
|
||||
As measured via RDTSC from L2 (using KVM-Unit-Test's CPUID VM-Exit test
|
||||
and a slightly modified L1 KVM to handle CPUID in the fastpath), a nested
|
||||
roundtrip to emulate CPUID on Skylake (SKX), Icelake (ICX), and Emerald
|
||||
Rapids (EMR) takes:
|
||||
|
||||
SKX 11650
|
||||
ICX 22350
|
||||
EMR 28850
|
||||
|
||||
Using cached values, the latency drops to:
|
||||
|
||||
SKX 6850
|
||||
ICX 9000
|
||||
EMR 7900
|
||||
|
||||
The underlying issue is that CPUID itself is slow on ICX, and comically
|
||||
slow on EMR. The problem is exacerbated on CPUs which support XSAVES
|
||||
and/or XSAVEC, as KVM invokes xstate_required_size() twice on each
|
||||
runtime CPUID update, and because there are more supported XSAVE features
|
||||
(CPUID for supported XSAVE feature sub-leafs is significantly slower).
|
||||
|
||||
SKX:
|
||||
CPUID.0xD.2 = 348 cycles
|
||||
CPUID.0xD.3 = 400 cycles
|
||||
CPUID.0xD.4 = 276 cycles
|
||||
CPUID.0xD.5 = 236 cycles
|
||||
<other sub-leaves are similar>
|
||||
|
||||
EMR:
|
||||
CPUID.0xD.2 = 1138 cycles
|
||||
CPUID.0xD.3 = 1362 cycles
|
||||
CPUID.0xD.4 = 1068 cycles
|
||||
CPUID.0xD.5 = 910 cycles
|
||||
CPUID.0xD.6 = 914 cycles
|
||||
CPUID.0xD.7 = 1350 cycles
|
||||
CPUID.0xD.8 = 734 cycles
|
||||
CPUID.0xD.9 = 766 cycles
|
||||
CPUID.0xD.10 = 732 cycles
|
||||
CPUID.0xD.11 = 718 cycles
|
||||
CPUID.0xD.12 = 734 cycles
|
||||
CPUID.0xD.13 = 1700 cycles
|
||||
CPUID.0xD.14 = 1126 cycles
|
||||
CPUID.0xD.15 = 898 cycles
|
||||
CPUID.0xD.16 = 716 cycles
|
||||
CPUID.0xD.17 = 748 cycles
|
||||
CPUID.0xD.18 = 776 cycles
|
||||
|
||||
Note, updating runtime CPUID information multiple times per nested
|
||||
transition is itself a flaw, especially since CPUID is a mandotory
|
||||
intercept on both Intel and AMD. E.g. KVM doesn't need to ensure emulated
|
||||
CPUID state is up-to-date while running L2. That flaw will be fixed in a
|
||||
future patch, as deferring runtime CPUID updates is more subtle than it
|
||||
appears at first glance, the benefits aren't super critical to have once
|
||||
the XSAVE issue is resolved, and caching CPUID output is desirable even if
|
||||
KVM's updates are deferred.
|
||||
|
||||
Cc: Jim Mattson <jmattson@google.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Sean Christopherson <seanjc@google.com>
|
||||
Message-ID: <20241211013302.1347853-2-seanjc@google.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 1201f226c863b7da739f7420ddba818cedf372fc)
|
||||
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
|
||||
---
|
||||
arch/x86/kvm/cpuid.c | 31 ++++++++++++++++++++++++++-----
|
||||
arch/x86/kvm/cpuid.h | 1 +
|
||||
arch/x86/kvm/x86.c | 2 ++
|
||||
3 files changed, 29 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
|
||||
index b6892645c4cde238923062e3f71df21d68cc201d..dc73965aa73b21d26b4cf039336da3ca38e89bc6 100644
|
||||
--- a/arch/x86/kvm/cpuid.c
|
||||
+++ b/arch/x86/kvm/cpuid.c
|
||||
@@ -36,6 +36,26 @@
|
||||
u32 kvm_cpu_caps[NR_KVM_CPU_CAPS] __read_mostly;
|
||||
EXPORT_SYMBOL_GPL(kvm_cpu_caps);
|
||||
|
||||
+struct cpuid_xstate_sizes {
|
||||
+ u32 eax;
|
||||
+ u32 ebx;
|
||||
+ u32 ecx;
|
||||
+};
|
||||
+
|
||||
+static struct cpuid_xstate_sizes xstate_sizes[XFEATURE_MAX] __ro_after_init;
|
||||
+
|
||||
+void __init kvm_init_xstate_sizes(void)
|
||||
+{
|
||||
+ u32 ign;
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = XFEATURE_YMM; i < ARRAY_SIZE(xstate_sizes); i++) {
|
||||
+ struct cpuid_xstate_sizes *xs = &xstate_sizes[i];
|
||||
+
|
||||
+ cpuid_count(0xD, i, &xs->eax, &xs->ebx, &xs->ecx, &ign);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
u32 xstate_required_size(u64 xstate_bv, bool compacted)
|
||||
{
|
||||
int feature_bit = 0;
|
||||
@@ -44,14 +64,15 @@ u32 xstate_required_size(u64 xstate_bv, bool compacted)
|
||||
xstate_bv &= XFEATURE_MASK_EXTEND;
|
||||
while (xstate_bv) {
|
||||
if (xstate_bv & 0x1) {
|
||||
- u32 eax, ebx, ecx, edx, offset;
|
||||
- cpuid_count(0xD, feature_bit, &eax, &ebx, &ecx, &edx);
|
||||
+ struct cpuid_xstate_sizes *xs = &xstate_sizes[feature_bit];
|
||||
+ u32 offset;
|
||||
+
|
||||
/* ECX[1]: 64B alignment in compacted form */
|
||||
if (compacted)
|
||||
- offset = (ecx & 0x2) ? ALIGN(ret, 64) : ret;
|
||||
+ offset = (xs->ecx & 0x2) ? ALIGN(ret, 64) : ret;
|
||||
else
|
||||
- offset = ebx;
|
||||
- ret = max(ret, offset + eax);
|
||||
+ offset = xs->ebx;
|
||||
+ ret = max(ret, offset + xs->eax);
|
||||
}
|
||||
|
||||
xstate_bv >>= 1;
|
||||
diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h
|
||||
index 0e46c4555311d02b6ec9eba7f33b292c3562b0ee..6287ec33feb7b143a10a7d8ee38d74381a567d24 100644
|
||||
--- a/arch/x86/kvm/cpuid.h
|
||||
+++ b/arch/x86/kvm/cpuid.h
|
||||
@@ -34,6 +34,7 @@ bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
|
||||
|
||||
bool vcpu_supports_xsave_pkru(struct kvm_vcpu *vcpu);
|
||||
|
||||
+void __init kvm_init_xstate_sizes(void);
|
||||
u32 xstate_required_size(u64 xstate_bv, bool compacted);
|
||||
|
||||
int cpuid_query_maxphyaddr(struct kvm_vcpu *vcpu);
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index c7c3d04198c6c7f88f97e122bfe78b857f26cb26..4d10fc1a9b4114d1e2edf133717f307043560263 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -14061,6 +14061,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_rmp_fault);
|
||||
|
||||
static int __init kvm_x86_init(void)
|
||||
{
|
||||
+ kvm_init_xstate_sizes();
|
||||
+
|
||||
kvm_mmu_x86_module_init();
|
||||
mitigate_smt_rsb &= boot_cpu_has_bug(X86_BUG_SMT_RSB) && cpu_smt_possible();
|
||||
return 0;
|
@ -1 +1 @@
|
||||
Subproject commit 4ee931f0cccceaa354a5902e6d2838d6e1ade2d8
|
||||
Subproject commit e6a7ffb799122fd84ce803a70ae92d9c9250d826
|
Loading…
Reference in New Issue
Block a user