+++ /dev/null
-From 1cf7e5d39939757c72a8f77b09273310433c300b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 8 Sep 2021 16:41:45 -0500
-Subject: ACPICA: Add support for MADT online enabled bit
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit 435a8dc8d9b9d91e625901fea5b5695b9b976d84 ]
-
-The online enabled bit on newer ACPI implmentations will indicate
-whether the CPU is hotpluggable.
-
-Link: http://github.com/acpica/acpica/pull/708/
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Stable-dep-of: 128b0c9781c9 ("x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- include/acpi/actbl2.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
-index ec66779cb1934..71f4ce6e78aae 100644
---- a/include/acpi/actbl2.h
-+++ b/include/acpi/actbl2.h
-@@ -731,6 +731,7 @@ struct acpi_madt_generic_translator {
- /* MADT Local APIC flags */
-
- #define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */
-+#define ACPI_MADT_ONLINE_CAPABLE (2) /* 01: System HW supports enabling processor at runtime */
-
- /* MADT MPS INTI flags (inti_flags) */
-
---
-2.42.0
-
iio-adc-xilinx-use-devm_krealloc-instead-of-kfree-kc.patch
iio-adc-xilinx-use-more-devres-helpers-and-remove-re.patch
iio-adc-xilinx-xadc-don-t-clobber-preset-voltage-tem.patch
-acpica-add-support-for-madt-online-enabled-bit.patch
-x86-acpi-don-t-add-cpus-that-are-not-online-capable.patch
-x86-acpi-boot-use-fadt-version-to-check-support-for-.patch
-x86-i8259-skip-probing-when-acpi-madt-advertises-pca.patch
+x86-i8259-skip-probing-when-acpi-madt-advertises-pcat-compatibility.patch
kobject-fix-slab-out-of-bounds-in-fill_kobj_path.patch
smbdirect-missing-rc-checks-while-waiting-for-rdma-events.patch
f2fs-fix-to-do-sanity-check-on-inode-type-during-garbage-collection.patch
+++ /dev/null
-From cf8da7f357c25cfa1fb0b78c3ad744e071e8d798 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 29 Mar 2023 12:45:35 -0500
-Subject: x86/ACPI/boot: Use FADT version to check support for online capable
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit a74fabfbd1b7013045afc8cc541e6cab3360ccb5 ]
-
-ACPI 6.3 introduced the online capable bit, and also introduced MADT
-version 5.
-
-Latter was used to distinguish whether the offset storing online capable
-could be used. However ACPI 6.2b has MADT version "45" which is for
-an errata version of the ACPI 6.2 spec. This means that the Linux code
-for detecting availability of MADT will mistakenly flag ACPI 6.2b as
-supporting online capable which is inaccurate as it's an ACPI 6.3 feature.
-
-Instead use the FADT major and minor revision fields to distinguish this.
-
- [ bp: Massage. ]
-
-Fixes: aa06e20f1be6 ("x86/ACPI: Don't add CPUs that are not online capable")
-Reported-by: Eric DeVolder <eric.devolder@oracle.com>
-Reported-by: Borislav Petkov <bp@alien8.de>
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
-Cc: <stable@kernel.org>
-Link: https://lore.kernel.org/r/943d2445-84df-d939-f578-5d8240d342cc@unsolicited.net
-Stable-dep-of: 128b0c9781c9 ("x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/acpi/boot.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 7840e650f452a..2f7f72b6f1235 100644
---- a/arch/x86/kernel/acpi/boot.c
-+++ b/arch/x86/kernel/acpi/boot.c
-@@ -141,7 +141,11 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
- printk(KERN_DEBUG PREFIX "Local APIC address 0x%08x\n",
- madt->address);
- }
-- if (madt->header.revision >= 5)
-+
-+ /* ACPI 6.3 and newer support the online capable bit. */
-+ if (acpi_gbl_FADT.header.revision > 6 ||
-+ (acpi_gbl_FADT.header.revision == 6 &&
-+ acpi_gbl_FADT.minor_revision >= 3))
- acpi_support_online_capable = true;
-
- default_acpi_madt_oem_check(madt->header.oem_id,
---
-2.42.0
-
+++ /dev/null
-From a7d395fab9e1231f558746ce56d13f4406fa7fa9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 8 Sep 2021 16:41:46 -0500
-Subject: x86/ACPI: Don't add CPUs that are not online capable
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit aa06e20f1be628186f0c2dcec09ea0009eb69778 ]
-
-A number of systems are showing "hotplug capable" CPUs when they
-are not really hotpluggable. This is because the MADT has extra
-CPU entries to support different CPUs that may be inserted into
-the socket with different numbers of cores.
-
-Starting with ACPI 6.3 the spec has an Online Capable bit in the
-MADT used to determine whether or not a CPU is hotplug capable
-when the enabled bit is not set.
-
-Link: https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html?#local-apic-flags
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Stable-dep-of: 128b0c9781c9 ("x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/acpi/boot.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 55562a9b7f92e..7840e650f452a 100644
---- a/arch/x86/kernel/acpi/boot.c
-+++ b/arch/x86/kernel/acpi/boot.c
-@@ -63,6 +63,7 @@ int acpi_fix_pin2_polarity __initdata;
-
- #ifdef CONFIG_X86_LOCAL_APIC
- static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
-+static bool acpi_support_online_capable;
- #endif
-
- #ifdef CONFIG_X86_IO_APIC
-@@ -140,6 +141,8 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
- printk(KERN_DEBUG PREFIX "Local APIC address 0x%08x\n",
- madt->address);
- }
-+ if (madt->header.revision >= 5)
-+ acpi_support_online_capable = true;
-
- default_acpi_madt_oem_check(madt->header.oem_id,
- madt->header.oem_table_id);
-@@ -241,6 +244,12 @@ acpi_parse_lapic(union acpi_subtable_headers * header, const unsigned long end)
- if (processor->id == 0xff)
- return 0;
-
-+ /* don't register processors that can not be onlined */
-+ if (acpi_support_online_capable &&
-+ !(processor->lapic_flags & ACPI_MADT_ENABLED) &&
-+ !(processor->lapic_flags & ACPI_MADT_ONLINE_CAPABLE))
-+ return 0;
-+
- /*
- * We need to register disabled CPU as well to permit
- * counting disabled CPUs. This allows us to size
---
-2.42.0
-
-From 8a6394357ea2e57d2f829b13d2c4abf3dccd5cfa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
+From 128b0c9781c9f2651bea163cb85e52a6c7be0f9e Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 25 Oct 2023 23:04:15 +0200
Subject: x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility
From: Thomas Gleixner <tglx@linutronix.de>
-[ Upstream commit 128b0c9781c9f2651bea163cb85e52a6c7be0f9e ]
+commit 128b0c9781c9f2651bea163cb85e52a6c7be0f9e upstream.
David and a few others reported that on certain newer systems some legacy
interrupts fail to work correctly.
Cc: stable@vger.kernel.org
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218003
Link: https://lore.kernel.org/r/875y2u5s8g.ffs@tglx
-Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/include/asm/i8259.h | 2 ++
arch/x86/kernel/acpi/boot.c | 3 +++
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
-@@ -142,6 +142,9 @@ static int __init acpi_parse_madt(struct
+@@ -141,6 +141,9 @@ static int __init acpi_parse_madt(struct
madt->address);
}
+ if (madt->flags & ACPI_MADT_PCAT_COMPAT)
+ legacy_pic_pcat_compat();
+
- /* ACPI 6.3 and newer support the online capable bit. */
- if (acpi_gbl_FADT.header.revision > 6 ||
- (acpi_gbl_FADT.header.revision == 6 &&
+ default_acpi_madt_oem_check(madt->header.oem_id,
+ madt->header.oem_table_id);
+
--- a/arch/x86/kernel/i8259.c
+++ b/arch/x86/kernel/i8259.c
@@ -32,6 +32,7 @@