From: Greg Kroah-Hartman Date: Wed, 19 Jun 2024 07:04:31 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v6.1.95~67 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9671272f64515c8c49ed06b4808029b2cc464f5a;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: intel_th-pci-add-granite-rapids-soc-support.patch intel_th-pci-add-granite-rapids-support.patch intel_th-pci-add-lunar-lake-support.patch intel_th-pci-add-meteor-lake-s-support.patch intel_th-pci-add-sapphire-rapids-soc-support.patch riscv-rewrite-__kernel_map_pages-to-fix-sleeping-in-invalid-context.patch --- diff --git a/queue-5.15/intel_th-pci-add-granite-rapids-soc-support.patch b/queue-5.15/intel_th-pci-add-granite-rapids-soc-support.patch new file mode 100644 index 00000000000..12a95d97fa0 --- /dev/null +++ b/queue-5.15/intel_th-pci-add-granite-rapids-soc-support.patch @@ -0,0 +1,34 @@ +From 854afe461b009801a171b3a49c5f75ea43e4c04c Mon Sep 17 00:00:00 2001 +From: Alexander Shishkin +Date: Mon, 29 Apr 2024 16:01:15 +0300 +Subject: intel_th: pci: Add Granite Rapids SOC support + +From: Alexander Shishkin + +commit 854afe461b009801a171b3a49c5f75ea43e4c04c upstream. + +Add support for the Trace Hub in Granite Rapids SOC. + +Signed-off-by: Alexander Shishkin +Reviewed-by: Andy Shevchenko +Cc: stable@kernel.org +Link: https://lore.kernel.org/r/20240429130119.1518073-12-alexander.shishkin@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwtracing/intel_th/pci.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/hwtracing/intel_th/pci.c ++++ b/drivers/hwtracing/intel_th/pci.c +@@ -310,6 +310,11 @@ static const struct pci_device_id intel_ + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { ++ /* Granite Rapids SOC */ ++ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3256), ++ .driver_data = (kernel_ulong_t)&intel_th_2x, ++ }, ++ { + /* Alder Lake CPU */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f), + .driver_data = (kernel_ulong_t)&intel_th_2x, diff --git a/queue-5.15/intel_th-pci-add-granite-rapids-support.patch b/queue-5.15/intel_th-pci-add-granite-rapids-support.patch new file mode 100644 index 00000000000..ffca019cf44 --- /dev/null +++ b/queue-5.15/intel_th-pci-add-granite-rapids-support.patch @@ -0,0 +1,34 @@ +From e44937889bdf4ecd1f0c25762b7226406b9b7a69 Mon Sep 17 00:00:00 2001 +From: Alexander Shishkin +Date: Mon, 29 Apr 2024 16:01:14 +0300 +Subject: intel_th: pci: Add Granite Rapids support + +From: Alexander Shishkin + +commit e44937889bdf4ecd1f0c25762b7226406b9b7a69 upstream. + +Add support for the Trace Hub in Granite Rapids. + +Signed-off-by: Alexander Shishkin +Reviewed-by: Andy Shevchenko +Cc: stable@kernel.org +Link: https://lore.kernel.org/r/20240429130119.1518073-11-alexander.shishkin@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwtracing/intel_th/pci.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/hwtracing/intel_th/pci.c ++++ b/drivers/hwtracing/intel_th/pci.c +@@ -305,6 +305,11 @@ static const struct pci_device_id intel_ + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { ++ /* Granite Rapids */ ++ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0963), ++ .driver_data = (kernel_ulong_t)&intel_th_2x, ++ }, ++ { + /* Alder Lake CPU */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f), + .driver_data = (kernel_ulong_t)&intel_th_2x, diff --git a/queue-5.15/intel_th-pci-add-lunar-lake-support.patch b/queue-5.15/intel_th-pci-add-lunar-lake-support.patch new file mode 100644 index 00000000000..637925372d6 --- /dev/null +++ b/queue-5.15/intel_th-pci-add-lunar-lake-support.patch @@ -0,0 +1,34 @@ +From f866b65322bfbc8fcca13c25f49e1a5c5a93ae4d Mon Sep 17 00:00:00 2001 +From: Alexander Shishkin +Date: Mon, 29 Apr 2024 16:01:19 +0300 +Subject: intel_th: pci: Add Lunar Lake support + +From: Alexander Shishkin + +commit f866b65322bfbc8fcca13c25f49e1a5c5a93ae4d upstream. + +Add support for the Trace Hub in Lunar Lake. + +Signed-off-by: Alexander Shishkin +Reviewed-by: Andy Shevchenko +Cc: stable@kernel.org +Link: https://lore.kernel.org/r/20240429130119.1518073-16-alexander.shishkin@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwtracing/intel_th/pci.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/hwtracing/intel_th/pci.c ++++ b/drivers/hwtracing/intel_th/pci.c +@@ -325,6 +325,11 @@ static const struct pci_device_id intel_ + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { ++ /* Lunar Lake */ ++ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa824), ++ .driver_data = (kernel_ulong_t)&intel_th_2x, ++ }, ++ { + /* Alder Lake CPU */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f), + .driver_data = (kernel_ulong_t)&intel_th_2x, diff --git a/queue-5.15/intel_th-pci-add-meteor-lake-s-support.patch b/queue-5.15/intel_th-pci-add-meteor-lake-s-support.patch new file mode 100644 index 00000000000..45d823a23a6 --- /dev/null +++ b/queue-5.15/intel_th-pci-add-meteor-lake-s-support.patch @@ -0,0 +1,34 @@ +From c4a30def564d75e84718b059d1a62cc79b137cf9 Mon Sep 17 00:00:00 2001 +From: Alexander Shishkin +Date: Mon, 29 Apr 2024 16:01:17 +0300 +Subject: intel_th: pci: Add Meteor Lake-S support + +From: Alexander Shishkin + +commit c4a30def564d75e84718b059d1a62cc79b137cf9 upstream. + +Add support for the Trace Hub in Meteor Lake-S. + +Signed-off-by: Alexander Shishkin +Reviewed-by: Andy Shevchenko +Cc: stable@kernel.org +Link: https://lore.kernel.org/r/20240429130119.1518073-14-alexander.shishkin@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwtracing/intel_th/pci.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/hwtracing/intel_th/pci.c ++++ b/drivers/hwtracing/intel_th/pci.c +@@ -295,6 +295,11 @@ static const struct pci_device_id intel_ + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { ++ /* Meteor Lake-S */ ++ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7f26), ++ .driver_data = (kernel_ulong_t)&intel_th_2x, ++ }, ++ { + /* Raptor Lake-S */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26), + .driver_data = (kernel_ulong_t)&intel_th_2x, diff --git a/queue-5.15/intel_th-pci-add-sapphire-rapids-soc-support.patch b/queue-5.15/intel_th-pci-add-sapphire-rapids-soc-support.patch new file mode 100644 index 00000000000..19659d7e5f7 --- /dev/null +++ b/queue-5.15/intel_th-pci-add-sapphire-rapids-soc-support.patch @@ -0,0 +1,34 @@ +From 2e1da7efabe05cb0cf0b358883b2bc89080ed0eb Mon Sep 17 00:00:00 2001 +From: Alexander Shishkin +Date: Mon, 29 Apr 2024 16:01:16 +0300 +Subject: intel_th: pci: Add Sapphire Rapids SOC support + +From: Alexander Shishkin + +commit 2e1da7efabe05cb0cf0b358883b2bc89080ed0eb upstream. + +Add support for the Trace Hub in Sapphire Rapids SOC. + +Signed-off-by: Alexander Shishkin +Reviewed-by: Andy Shevchenko +Cc: stable@kernel.org +Link: https://lore.kernel.org/r/20240429130119.1518073-13-alexander.shishkin@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwtracing/intel_th/pci.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/hwtracing/intel_th/pci.c ++++ b/drivers/hwtracing/intel_th/pci.c +@@ -315,6 +315,11 @@ static const struct pci_device_id intel_ + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { ++ /* Sapphire Rapids SOC */ ++ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3456), ++ .driver_data = (kernel_ulong_t)&intel_th_2x, ++ }, ++ { + /* Alder Lake CPU */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f), + .driver_data = (kernel_ulong_t)&intel_th_2x, diff --git a/queue-5.15/riscv-rewrite-__kernel_map_pages-to-fix-sleeping-in-invalid-context.patch b/queue-5.15/riscv-rewrite-__kernel_map_pages-to-fix-sleeping-in-invalid-context.patch new file mode 100644 index 00000000000..7ac5df76bc7 --- /dev/null +++ b/queue-5.15/riscv-rewrite-__kernel_map_pages-to-fix-sleeping-in-invalid-context.patch @@ -0,0 +1,99 @@ +From fb1cf0878328fe75d47f0aed0a65b30126fcefc4 Mon Sep 17 00:00:00 2001 +From: Nam Cao +Date: Wed, 15 May 2024 07:50:40 +0200 +Subject: riscv: rewrite __kernel_map_pages() to fix sleeping in invalid context + +From: Nam Cao + +commit fb1cf0878328fe75d47f0aed0a65b30126fcefc4 upstream. + +__kernel_map_pages() is a debug function which clears the valid bit in page +table entry for deallocated pages to detect illegal memory accesses to +freed pages. + +This function set/clear the valid bit using __set_memory(). __set_memory() +acquires init_mm's semaphore, and this operation may sleep. This is +problematic, because __kernel_map_pages() can be called in atomic context, +and thus is illegal to sleep. An example warning that this causes: + +BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1578 +in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 2, name: kthreadd +preempt_count: 2, expected: 0 +CPU: 0 PID: 2 Comm: kthreadd Not tainted 6.9.0-g1d4c6d784ef6 #37 +Hardware name: riscv-virtio,qemu (DT) +Call Trace: +[] dump_backtrace+0x1c/0x24 +[] show_stack+0x2c/0x38 +[] dump_stack_lvl+0x5a/0x72 +[] dump_stack+0x14/0x1c +[] __might_resched+0x104/0x10e +[] __might_sleep+0x3e/0x62 +[] down_write+0x20/0x72 +[] __set_memory+0x82/0x2fa +[] __kernel_map_pages+0x5a/0xd4 +[] __alloc_pages_bulk+0x3b2/0x43a +[] __vmalloc_node_range+0x196/0x6ba +[] copy_process+0x72c/0x17ec +[] kernel_clone+0x60/0x2fe +[] kernel_thread+0x82/0xa0 +[] kthreadd+0x14a/0x1be +[] ret_from_fork+0xe/0x1c + +Rewrite this function with apply_to_existing_page_range(). It is fine to +not have any locking, because __kernel_map_pages() works with pages being +allocated/deallocated and those pages are not changed by anyone else in the +meantime. + +Fixes: 5fde3db5eb02 ("riscv: add ARCH_SUPPORTS_DEBUG_PAGEALLOC support") +Signed-off-by: Nam Cao +Cc: stable@vger.kernel.org +Reviewed-by: Alexandre Ghiti +Link: https://lore.kernel.org/r/1289ecba9606a19917bc12b6c27da8aa23e1e5ae.1715750938.git.namcao@linutronix.de +Signed-off-by: Palmer Dabbelt +Signed-off-by: Greg Kroah-Hartman +--- + arch/riscv/mm/pageattr.c | 28 ++++++++++++++++++++++------ + 1 file changed, 22 insertions(+), 6 deletions(-) + +--- a/arch/riscv/mm/pageattr.c ++++ b/arch/riscv/mm/pageattr.c +@@ -191,17 +191,33 @@ int set_direct_map_default_noflush(struc + } + + #ifdef CONFIG_DEBUG_PAGEALLOC ++static int debug_pagealloc_set_page(pte_t *pte, unsigned long addr, void *data) ++{ ++ int enable = *(int *)data; ++ ++ unsigned long val = pte_val(ptep_get(pte)); ++ ++ if (enable) ++ val |= _PAGE_PRESENT; ++ else ++ val &= ~_PAGE_PRESENT; ++ ++ set_pte(pte, __pte(val)); ++ ++ return 0; ++} ++ + void __kernel_map_pages(struct page *page, int numpages, int enable) + { + if (!debug_pagealloc_enabled()) + return; + +- if (enable) +- __set_memory((unsigned long)page_address(page), numpages, +- __pgprot(_PAGE_PRESENT), __pgprot(0)); +- else +- __set_memory((unsigned long)page_address(page), numpages, +- __pgprot(0), __pgprot(_PAGE_PRESENT)); ++ unsigned long start = (unsigned long)page_address(page); ++ unsigned long size = PAGE_SIZE * numpages; ++ ++ apply_to_existing_page_range(&init_mm, start, size, debug_pagealloc_set_page, &enable); ++ ++ flush_tlb_kernel_range(start, start + size); + } + #endif + diff --git a/queue-5.15/series b/queue-5.15/series index 5c5e87e708e..93d3dfa7fba 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -156,3 +156,9 @@ pci-rockchip-ep-remove-wrong-mask-on-subsys_vendor_id.patch dmaengine-axi-dmac-fix-possible-race-in-remove.patch remoteproc-k3-r5-wait-for-core0-power-up-before-powering-up-core1.patch remoteproc-k3-r5-do-not-allow-core1-to-power-up-before-core0-via-sysfs.patch +riscv-rewrite-__kernel_map_pages-to-fix-sleeping-in-invalid-context.patch +intel_th-pci-add-granite-rapids-support.patch +intel_th-pci-add-granite-rapids-soc-support.patch +intel_th-pci-add-sapphire-rapids-soc-support.patch +intel_th-pci-add-meteor-lake-s-support.patch +intel_th-pci-add-lunar-lake-support.patch