+++ /dev/null
-From d0c219472980d15f5cbc5c8aec736848bda3f235 Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Tue, 17 Oct 2023 22:19:53 +0200
-Subject: parisc/power: Add power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.
-
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -193,6 +193,14 @@ static struct notifier_block parisc_pani
- .priority = INT_MAX,
- };
-
-+/* qemu soft power-off function */
-+static int qemu_power_off(struct sys_off_data *data)
-+{
-+ /* this turns the system off via SeaBIOS */
-+ *(int *)data->cb_data = 0;
-+ pdc_soft_power_button(1);
-+ return NOTIFY_DONE;
-+}
-
- static int __init power_init(void)
- {
-@@ -222,7 +230,13 @@ static int __init power_init(void)
- soft_power_reg);
- }
-
-- power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME);
-+ power_task = NULL;
-+ if (running_on_qemu && soft_power_reg)
-+ register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
-+ qemu_power_off, (void *)soft_power_reg);
-+ else
-+ power_task = kthread_run(kpowerswd, (void*)soft_power_reg,
-+ KTHREAD_NAME);
- if (IS_ERR(power_task)) {
- printk(KERN_ERR DRIVER_NAME ": thread creation failed. Driver not loaded.\n");
- pdc_soft_power_button(0);
+++ /dev/null
-From 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Fri, 17 Nov 2023 16:43:52 +0100
-Subject: parisc/power: Fix power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf upstream.
-
-Firmware returns the physical address of the power switch,
-so need to use gsc_writel() instead of direct memory access.
-
-Fixes: d0c219472980 ("parisc/power: Add power soft-off when running on qemu")
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -197,7 +197,7 @@ static struct notifier_block parisc_pani
- static int qemu_power_off(struct sys_off_data *data)
- {
- /* this turns the system off via SeaBIOS */
-- *(int *)data->cb_data = 0;
-+ gsc_writel(0, (unsigned long) data->cb_data);
- pdc_soft_power_button(1);
- return NOTIFY_DONE;
- }
+++ /dev/null
-From 84bb41d5df48868055d159d9247b80927f1f70f9 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <hca@linux.ibm.com>
-Date: Tue, 24 Oct 2023 10:15:20 +0200
-Subject: s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir
-
-From: Heiko Carstens <hca@linux.ibm.com>
-
-commit 84bb41d5df48868055d159d9247b80927f1f70f9 upstream.
-
-If the cmma no-dat feature is available the kernel page tables are walked
-to identify and mark all pages which are used for address translation (all
-region, segment, and page tables). In a subsequent loop all other pages are
-marked as "no-dat" pages with the ESSA instruction.
-
-This information is visible to the hypervisor, so that the hypervisor can
-optimize purging of guest TLB entries. All pages used for swapper_pg_dir
-and invalid_pg_dir are incorrectly marked as no-dat, which in turn can
-result in incorrect guest TLB flushes.
-
-Fix this by marking those pages correctly as being used for DAT.
-
-Cc: <stable@vger.kernel.org>
-Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
-Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/mm/page-states.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/arch/s390/mm/page-states.c
-+++ b/arch/s390/mm/page-states.c
-@@ -204,6 +204,12 @@ void __init cmma_init_nodat(void)
- return;
- /* Mark pages used in kernel page tables */
- mark_kernel_pgd();
-+ page = virt_to_page(&swapper_pg_dir);
-+ for (i = 0; i < 4; i++)
-+ set_bit(PG_arch_1, &page[i].flags);
-+ page = virt_to_page(&invalid_pg_dir);
-+ for (i = 0; i < 4; i++)
-+ set_bit(PG_arch_1, &page[i].flags);
-
- /* Set all kernel pages not used for page tables to stable/no-dat */
- for_each_memblock(memory, reg) {
+++ /dev/null
-From 16ba44826a04834d3eeeda4b731c2ea3481062b7 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <hca@linux.ibm.com>
-Date: Tue, 17 Oct 2023 21:07:03 +0200
-Subject: s390/cmma: fix initial kernel address space page table walk
-
-From: Heiko Carstens <hca@linux.ibm.com>
-
-commit 16ba44826a04834d3eeeda4b731c2ea3481062b7 upstream.
-
-If the cmma no-dat feature is available the kernel page tables are walked
-to identify and mark all pages which are used for address translation (all
-region, segment, and page tables). In a subsequent loop all other pages are
-marked as "no-dat" pages with the ESSA instruction.
-
-This information is visible to the hypervisor, so that the hypervisor can
-optimize purging of guest TLB entries. The initial loop however does not
-cover the complete kernel address space. This can result in pages being
-marked as not being used for dynamic address translation, even though they
-are. In turn guest TLB entries incorrectly may not be purged.
-
-Fix this by adjusting the end address of the kernel address range being
-walked.
-
-Cc: <stable@vger.kernel.org>
-Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
-Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
-Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/mm/page-states.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/arch/s390/mm/page-states.c
-+++ b/arch/s390/mm/page-states.c
-@@ -167,15 +167,22 @@ static void mark_kernel_p4d(pgd_t *pgd,
-
- static void mark_kernel_pgd(void)
- {
-- unsigned long addr, next;
-+ unsigned long addr, next, max_addr;
- struct page *page;
- pgd_t *pgd;
- int i;
-
- addr = 0;
-+ /*
-+ * Figure out maximum virtual address accessible with the
-+ * kernel ASCE. This is required to keep the page table walker
-+ * from accessing non-existent entries.
-+ */
-+ max_addr = (S390_lowcore.kernel_asce.val & _ASCE_TYPE_MASK) >> 2;
-+ max_addr = 1UL << (max_addr * 11 + 31);
- pgd = pgd_offset_k(addr);
- do {
-- next = pgd_addr_end(addr, MODULES_END);
-+ next = pgd_addr_end(addr, max_addr);
- if (pgd_none(*pgd))
- continue;
- if (!pgd_folded(*pgd)) {
-@@ -184,7 +191,7 @@ static void mark_kernel_pgd(void)
- set_bit(PG_arch_1, &page[i].flags);
- }
- mark_kernel_p4d(pgd, addr, next);
-- } while (pgd++, addr = next, addr != MODULES_END);
-+ } while (pgd++, addr = next, addr != max_addr);
- }
-
- void __init cmma_init_nodat(void)
audit-don-t-warn_on_once-current-mm-in-audit_exe_compare.patch
hvc-xen-fix-error-path-in-xen_hvc_init-to-always-register-frontend-driver.patch
pci-sysfs-protect-driver-s-d3cold-preference-from-user-space.patch
-parisc-power-add-power-soft-off-when-running-on-qemu.patch
mmc-vub300-fix-an-error-code.patch
pm-hibernate-use-__get_safe_page-rather-than-touching-the-list.patch
pm-hibernate-clean-up-sync_read-handling-in-snapshot_write_next.patch
genirq-generic_chip-make-irq_remove_generic_chip-irqdomain-aware.patch
jbd2-fix-potential-data-lost-in-recovering-journal-raced-with-synchronizing-fs-bdev.patch
mcb-fix-error-handling-for-different-scenarios-when-parsing.patch
-s390-cmma-fix-initial-kernel-address-space-page-table-walk.patch
-s390-cmma-fix-handling-of-swapper_pg_dir-and-invalid_pg_dir.patch
parisc-prevent-booting-64-bit-kernels-on-pa1.x-machines.patch
parisc-pgtable-do-not-drop-upper-5-address-bits-of-physical-address.patch
-parisc-power-fix-power-soft-off-when-running-on-qemu.patch
alsa-info-fix-potential-deadlock-at-disconnection.patch
net-dsa-lan9303-consequently-nested-lock-physical-mdio.patch
i2c-i801-fix-potential-race-in-i801_block_transaction_byte_by_byte.patch
+++ /dev/null
-From d0c219472980d15f5cbc5c8aec736848bda3f235 Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Tue, 17 Oct 2023 22:19:53 +0200
-Subject: parisc/power: Add power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.
-
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -192,6 +192,14 @@ static struct notifier_block parisc_pani
- .priority = INT_MAX,
- };
-
-+/* qemu soft power-off function */
-+static int qemu_power_off(struct sys_off_data *data)
-+{
-+ /* this turns the system off via SeaBIOS */
-+ *(int *)data->cb_data = 0;
-+ pdc_soft_power_button(1);
-+ return NOTIFY_DONE;
-+}
-
- static int __init power_init(void)
- {
-@@ -221,7 +229,13 @@ static int __init power_init(void)
- soft_power_reg);
- }
-
-- power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME);
-+ power_task = NULL;
-+ if (running_on_qemu && soft_power_reg)
-+ register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
-+ qemu_power_off, (void *)soft_power_reg);
-+ else
-+ power_task = kthread_run(kpowerswd, (void*)soft_power_reg,
-+ KTHREAD_NAME);
- if (IS_ERR(power_task)) {
- printk(KERN_ERR DRIVER_NAME ": thread creation failed. Driver not loaded.\n");
- pdc_soft_power_button(0);
+++ /dev/null
-From 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Fri, 17 Nov 2023 16:43:52 +0100
-Subject: parisc/power: Fix power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf upstream.
-
-Firmware returns the physical address of the power switch,
-so need to use gsc_writel() instead of direct memory access.
-
-Fixes: d0c219472980 ("parisc/power: Add power soft-off when running on qemu")
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -196,7 +196,7 @@ static struct notifier_block parisc_pani
- static int qemu_power_off(struct sys_off_data *data)
- {
- /* this turns the system off via SeaBIOS */
-- *(int *)data->cb_data = 0;
-+ gsc_writel(0, (unsigned long) data->cb_data);
- pdc_soft_power_button(1);
- return NOTIFY_DONE;
- }
--- a/arch/s390/mm/page-states.c
+++ b/arch/s390/mm/page-states.c
-@@ -204,6 +204,12 @@ void __init cmma_init_nodat(void)
+@@ -197,6 +197,12 @@ void __init cmma_init_nodat(void)
return;
/* Mark pages used in kernel page tables */
mark_kernel_pgd();
+++ /dev/null
-From 16ba44826a04834d3eeeda4b731c2ea3481062b7 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <hca@linux.ibm.com>
-Date: Tue, 17 Oct 2023 21:07:03 +0200
-Subject: s390/cmma: fix initial kernel address space page table walk
-
-From: Heiko Carstens <hca@linux.ibm.com>
-
-commit 16ba44826a04834d3eeeda4b731c2ea3481062b7 upstream.
-
-If the cmma no-dat feature is available the kernel page tables are walked
-to identify and mark all pages which are used for address translation (all
-region, segment, and page tables). In a subsequent loop all other pages are
-marked as "no-dat" pages with the ESSA instruction.
-
-This information is visible to the hypervisor, so that the hypervisor can
-optimize purging of guest TLB entries. The initial loop however does not
-cover the complete kernel address space. This can result in pages being
-marked as not being used for dynamic address translation, even though they
-are. In turn guest TLB entries incorrectly may not be purged.
-
-Fix this by adjusting the end address of the kernel address range being
-walked.
-
-Cc: <stable@vger.kernel.org>
-Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
-Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
-Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/mm/page-states.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/arch/s390/mm/page-states.c
-+++ b/arch/s390/mm/page-states.c
-@@ -167,15 +167,22 @@ static void mark_kernel_p4d(pgd_t *pgd,
-
- static void mark_kernel_pgd(void)
- {
-- unsigned long addr, next;
-+ unsigned long addr, next, max_addr;
- struct page *page;
- pgd_t *pgd;
- int i;
-
- addr = 0;
-+ /*
-+ * Figure out maximum virtual address accessible with the
-+ * kernel ASCE. This is required to keep the page table walker
-+ * from accessing non-existent entries.
-+ */
-+ max_addr = (S390_lowcore.kernel_asce.val & _ASCE_TYPE_MASK) >> 2;
-+ max_addr = 1UL << (max_addr * 11 + 31);
- pgd = pgd_offset_k(addr);
- do {
-- next = pgd_addr_end(addr, MODULES_END);
-+ next = pgd_addr_end(addr, max_addr);
- if (pgd_none(*pgd))
- continue;
- if (!pgd_folded(*pgd)) {
-@@ -184,7 +191,7 @@ static void mark_kernel_pgd(void)
- set_bit(PG_arch_1, &page[i].flags);
- }
- mark_kernel_p4d(pgd, addr, next);
-- } while (pgd++, addr = next, addr != MODULES_END);
-+ } while (pgd++, addr = next, addr != max_addr);
- }
-
- void __init cmma_init_nodat(void)
Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 3 ++-
+ drivers/tty/serial/meson_uart.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 4c3616cc00833..6a74a31231ebf 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -664,12 +664,13 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -668,12 +668,13 @@ static int meson_uart_probe(struct platf
struct resource *res_mem, *res_irq;
struct uart_port *port;
int ret = 0;
for (id = AML_UART_PORT_OFFSET; id < AML_UART_PORT_NUM; id++) {
if (!meson_ports[id]) {
pdev->id = id;
---
-2.42.0
-
Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 11 ++++++-----
+ drivers/tty/serial/meson_uart.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 7563fd215d816..a193cbc78ebc0 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -661,10 +661,11 @@ static int meson_uart_probe_clocks(struct platform_device *pdev,
+@@ -665,10 +665,11 @@ static int meson_uart_probe_clocks(struc
static int meson_uart_probe(struct platform_device *pdev)
{
if (pdev->dev.of_node)
pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
-@@ -687,9 +688,9 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -691,9 +692,9 @@ static int meson_uart_probe(struct platf
if (!res_mem)
return -ENODEV;
of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
-@@ -714,7 +715,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -718,7 +719,7 @@ static int meson_uart_probe(struct platf
port->iotype = UPIO_MEM;
port->mapbase = res_mem->start;
port->mapsize = resource_size(res_mem);
- port->irq = res_irq->start;
+ port->irq = irq;
port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
- port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
port->dev = &pdev->dev;
---
-2.42.0
-
+ port->line = pdev->id;
pci-keystone-don-t-discard-.remove-callback.patch
pci-keystone-don-t-discard-.probe-callback.patch
parisc-pdc-add-width-field-to-struct-pdc_model.patch
-parisc-power-add-power-soft-off-when-running-on-qemu.patch
clk-qcom-ipq8074-drop-the-clk_set_rate_parent-flag-from-pll-clocks.patch
mmc-vub300-fix-an-error-code.patch
pm-hibernate-use-__get_safe_page-rather-than-touching-the-list.patch
quota-explicitly-forbid-quota-files-from-being-encrypted.patch
mcb-fix-error-handling-for-different-scenarios-when-parsing.patch
dmaengine-stm32-mdma-correct-desc-prep-when-channel-running.patch
-s390-cmma-fix-initial-kernel-address-space-page-table-walk.patch
s390-cmma-fix-handling-of-swapper_pg_dir-and-invalid_pg_dir.patch
parisc-prevent-booting-64-bit-kernels-on-pa1.x-machines.patch
parisc-pgtable-do-not-drop-upper-5-address-bits-of-physical-address.patch
-parisc-power-fix-power-soft-off-when-running-on-qemu.patch
alsa-info-fix-potential-deadlock-at-disconnection.patch
alsa-hda-realtek-enable-internal-speaker-of-asus-k6500zc.patch
tty-serial-meson-if-no-alias-specified-use-an-availa.patch
-tty-serial-migrate-meson_uart-to-use-has_sysrq.patch
serial-meson-remove-redundant-initialization-of-vari.patch
tty-serial-meson-retrieve-port-fifo-size-from-dt.patch
serial-meson-use-platform_get_irq-to-get-the-interru.patch
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 14 +++++++++++---
+ drivers/tty/serial/meson_uart.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index a193cbc78ebc0..60c0a4079e093 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -367,10 +367,14 @@ static void meson_uart_set_termios(struct uart_port *port,
+@@ -371,10 +371,14 @@ static void meson_uart_set_termios(struc
else
val |= AML_UART_STOP_BIT_1SB;
writel(val, port->membase + AML_UART_CONTROL);
-@@ -666,6 +670,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -670,6 +674,7 @@ static int meson_uart_probe(struct platf
u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
int ret = 0;
int irq;
if (pdev->dev.of_node)
pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
-@@ -693,6 +698,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -697,6 +702,7 @@ static int meson_uart_probe(struct platf
return irq;
of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
if (meson_ports[pdev->id]) {
dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
-@@ -717,6 +723,8 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -721,6 +727,8 @@ static int meson_uart_probe(struct platf
port->mapsize = resource_size(res_mem);
port->irq = irq;
port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
+ if (has_rtscts)
+ port->flags |= UPF_HARD_FLOW;
- port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
port->dev = &pdev->dev;
port->line = pdev->id;
---
-2.42.0
-
+ port->type = PORT_MESON;
Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 5 ++++-
+ drivers/tty/serial/meson_uart.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 6a74a31231ebf..7563fd215d816 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -663,6 +663,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -667,6 +667,7 @@ static int meson_uart_probe(struct platf
{
struct resource *res_mem, *res_irq;
struct uart_port *port;
int ret = 0;
if (pdev->dev.of_node)
-@@ -690,6 +691,8 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -694,6 +695,8 @@ static int meson_uart_probe(struct platf
if (!res_irq)
return -ENODEV;
if (meson_ports[pdev->id]) {
dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
return -EBUSY;
-@@ -719,7 +722,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -722,7 +725,7 @@ static int meson_uart_probe(struct platf
port->type = PORT_MESON;
port->x_char = 0;
port->ops = &meson_uart_ops;
meson_ports[pdev->id] = port;
platform_set_drvdata(pdev, port);
---
-2.42.0
-
+++ /dev/null
-From f10405e5e2a157f4b387de97d81986d5415cfa61 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 13 Dec 2019 00:06:20 +0000
-Subject: tty/serial: Migrate meson_uart to use has_sysrq
-
-From: Dmitry Safonov <dima@arista.com>
-
-[ Upstream commit dca3ac8d3bc9436eb5fd35b80cdcad762fbfa518 ]
-
-The SUPPORT_SYSRQ ifdeffery is not nice as:
-- May create misunderstanding about sizeof(struct uart_port) between
- different objects
-- Prevents moving functions from serial_core.h
-- Reduces readability (well, it's ifdeffery - it's hard to follow)
-
-In order to remove SUPPORT_SYSRQ, has_sysrq variable has been added.
-Initialise it in driver's probe and remove ifdeffery.
-
-Cc: Kevin Hilman <khilman@baylibre.com>
-Cc: linux-arm-kernel@lists.infradead.org
-Cc: linux-amlogic@lists.infradead.org
-Signed-off-by: Dmitry Safonov <dima@arista.com>
-Link: https://lore.kernel.org/r/20191213000657.931618-22-dima@arista.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/tty/serial/meson_uart.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 849ce8c1ef392..4c3616cc00833 100644
---- a/drivers/tty/serial/meson_uart.c
-+++ b/drivers/tty/serial/meson_uart.c
-@@ -5,10 +5,6 @@
- * Copyright (C) 2014 Carlo Caione <carlo@caione.org>
- */
-
--#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
--#define SUPPORT_SYSRQ
--#endif
--
- #include <linux/clk.h>
- #include <linux/console.h>
- #include <linux/delay.h>
-@@ -716,6 +712,7 @@ static int meson_uart_probe(struct platform_device *pdev)
- port->mapsize = resource_size(res_mem);
- port->irq = res_irq->start;
- port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
-+ port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
- port->dev = &pdev->dev;
- port->line = pdev->id;
- port->type = PORT_MESON;
---
-2.42.0
-
+++ /dev/null
-From d0c219472980d15f5cbc5c8aec736848bda3f235 Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Tue, 17 Oct 2023 22:19:53 +0200
-Subject: parisc/power: Add power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.
-
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -192,6 +192,14 @@ static struct notifier_block parisc_pani
- .priority = INT_MAX,
- };
-
-+/* qemu soft power-off function */
-+static int qemu_power_off(struct sys_off_data *data)
-+{
-+ /* this turns the system off via SeaBIOS */
-+ *(int *)data->cb_data = 0;
-+ pdc_soft_power_button(1);
-+ return NOTIFY_DONE;
-+}
-
- static int __init power_init(void)
- {
-@@ -221,7 +229,13 @@ static int __init power_init(void)
- soft_power_reg);
- }
-
-- power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME);
-+ power_task = NULL;
-+ if (running_on_qemu && soft_power_reg)
-+ register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
-+ qemu_power_off, (void *)soft_power_reg);
-+ else
-+ power_task = kthread_run(kpowerswd, (void*)soft_power_reg,
-+ KTHREAD_NAME);
- if (IS_ERR(power_task)) {
- printk(KERN_ERR DRIVER_NAME ": thread creation failed. Driver not loaded.\n");
- pdc_soft_power_button(0);
+++ /dev/null
-From 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Fri, 17 Nov 2023 16:43:52 +0100
-Subject: parisc/power: Fix power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf upstream.
-
-Firmware returns the physical address of the power switch,
-so need to use gsc_writel() instead of direct memory access.
-
-Fixes: d0c219472980 ("parisc/power: Add power soft-off when running on qemu")
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -196,7 +196,7 @@ static struct notifier_block parisc_pani
- static int qemu_power_off(struct sys_off_data *data)
- {
- /* this turns the system off via SeaBIOS */
-- *(int *)data->cb_data = 0;
-+ gsc_writel(0, (unsigned long) data->cb_data);
- pdc_soft_power_button(1);
- return NOTIFY_DONE;
- }
+++ /dev/null
-From feea65a338e52297b68ceb688eaf0ffc50310a83 Mon Sep 17 00:00:00 2001
-From: Michael Ellerman <mpe@ellerman.id.au>
-Date: Tue, 22 Aug 2023 00:28:19 +1000
-Subject: powerpc/powernv: Fix fortify source warnings in opal-prd.c
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-commit feea65a338e52297b68ceb688eaf0ffc50310a83 upstream.
-
-As reported by Mahesh & Aneesh, opal_prd_msg_notifier() triggers a
-FORTIFY_SOURCE warning:
-
- memcpy: detected field-spanning write (size 32) of single field "&item->msg" at arch/powerpc/platforms/powernv/opal-prd.c:355 (size 4)
- WARNING: CPU: 9 PID: 660 at arch/powerpc/platforms/powernv/opal-prd.c:355 opal_prd_msg_notifier+0x174/0x188 [opal_prd]
- NIP opal_prd_msg_notifier+0x174/0x188 [opal_prd]
- LR opal_prd_msg_notifier+0x170/0x188 [opal_prd]
- Call Trace:
- opal_prd_msg_notifier+0x170/0x188 [opal_prd] (unreliable)
- notifier_call_chain+0xc0/0x1b0
- atomic_notifier_call_chain+0x2c/0x40
- opal_message_notify+0xf4/0x2c0
-
-This happens because the copy is targeting item->msg, which is only 4
-bytes in size, even though the enclosing item was allocated with extra
-space following the msg.
-
-To fix the warning define struct opal_prd_msg with a union of the header
-and a flex array, and have the memcpy target the flex array.
-
-Reported-by: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
-Reported-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
-Tested-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
-Reviewed-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://msgid.link/20230821142820.497107-1-mpe@ellerman.id.au
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/powerpc/platforms/powernv/opal-prd.c | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
---- a/arch/powerpc/platforms/powernv/opal-prd.c
-+++ b/arch/powerpc/platforms/powernv/opal-prd.c
-@@ -24,13 +24,20 @@
- #include <linux/uaccess.h>
-
-
-+struct opal_prd_msg {
-+ union {
-+ struct opal_prd_msg_header header;
-+ DECLARE_FLEX_ARRAY(u8, data);
-+ };
-+};
-+
- /*
- * The msg member must be at the end of the struct, as it's followed by the
- * message data.
- */
- struct opal_prd_msg_queue_item {
-- struct list_head list;
-- struct opal_prd_msg_header msg;
-+ struct list_head list;
-+ struct opal_prd_msg msg;
- };
-
- static struct device_node *prd_node;
-@@ -159,7 +166,7 @@ static ssize_t opal_prd_read(struct file
- int rc;
-
- /* we need at least a header's worth of data */
-- if (count < sizeof(item->msg))
-+ if (count < sizeof(item->msg.header))
- return -EINVAL;
-
- if (*ppos)
-@@ -189,7 +196,7 @@ static ssize_t opal_prd_read(struct file
- return -EINTR;
- }
-
-- size = be16_to_cpu(item->msg.size);
-+ size = be16_to_cpu(item->msg.header.size);
- if (size > count) {
- err = -EINVAL;
- goto err_requeue;
-@@ -355,7 +362,7 @@ static int opal_prd_msg_notifier(struct
- if (!item)
- return -ENOMEM;
-
-- memcpy(&item->msg, msg->params, msg_size);
-+ memcpy(&item->msg.data, msg->params, msg_size);
-
- spin_lock_irqsave(&opal_prd_msg_queue_lock, flags);
- list_add_tail(&item->list, &opal_prd_msg_queue);
--- a/arch/s390/mm/page-states.c
+++ b/arch/s390/mm/page-states.c
-@@ -198,6 +198,12 @@ void __init cmma_init_nodat(void)
+@@ -191,6 +191,12 @@ void __init cmma_init_nodat(void)
return;
/* Mark pages used in kernel page tables */
mark_kernel_pgd();
+++ /dev/null
-From 16ba44826a04834d3eeeda4b731c2ea3481062b7 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <hca@linux.ibm.com>
-Date: Tue, 17 Oct 2023 21:07:03 +0200
-Subject: s390/cmma: fix initial kernel address space page table walk
-
-From: Heiko Carstens <hca@linux.ibm.com>
-
-commit 16ba44826a04834d3eeeda4b731c2ea3481062b7 upstream.
-
-If the cmma no-dat feature is available the kernel page tables are walked
-to identify and mark all pages which are used for address translation (all
-region, segment, and page tables). In a subsequent loop all other pages are
-marked as "no-dat" pages with the ESSA instruction.
-
-This information is visible to the hypervisor, so that the hypervisor can
-optimize purging of guest TLB entries. The initial loop however does not
-cover the complete kernel address space. This can result in pages being
-marked as not being used for dynamic address translation, even though they
-are. In turn guest TLB entries incorrectly may not be purged.
-
-Fix this by adjusting the end address of the kernel address range being
-walked.
-
-Cc: <stable@vger.kernel.org>
-Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
-Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
-Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/mm/page-states.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/arch/s390/mm/page-states.c
-+++ b/arch/s390/mm/page-states.c
-@@ -161,15 +161,22 @@ static void mark_kernel_p4d(pgd_t *pgd,
-
- static void mark_kernel_pgd(void)
- {
-- unsigned long addr, next;
-+ unsigned long addr, next, max_addr;
- struct page *page;
- pgd_t *pgd;
- int i;
-
- addr = 0;
-+ /*
-+ * Figure out maximum virtual address accessible with the
-+ * kernel ASCE. This is required to keep the page table walker
-+ * from accessing non-existent entries.
-+ */
-+ max_addr = (S390_lowcore.kernel_asce.val & _ASCE_TYPE_MASK) >> 2;
-+ max_addr = 1UL << (max_addr * 11 + 31);
- pgd = pgd_offset_k(addr);
- do {
-- next = pgd_addr_end(addr, MODULES_END);
-+ next = pgd_addr_end(addr, max_addr);
- if (pgd_none(*pgd))
- continue;
- if (!pgd_folded(*pgd)) {
-@@ -178,7 +185,7 @@ static void mark_kernel_pgd(void)
- set_bit(PG_arch_1, &page[i].flags);
- }
- mark_kernel_p4d(pgd, addr, next);
-- } while (pgd++, addr = next, addr != MODULES_END);
-+ } while (pgd++, addr = next, addr != max_addr);
- }
-
- void __init cmma_init_nodat(void)
acpi-resource-do-irq-override-on-tongfang-gmxxgxx.patch
arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-15.x-or-newer.patch
parisc-pdc-add-width-field-to-struct-pdc_model.patch
-parisc-power-add-power-soft-off-when-running-on-qemu.patch
clk-qcom-ipq8074-drop-the-clk_set_rate_parent-flag-from-pll-clocks.patch
clk-qcom-ipq6018-drop-the-clk_set_rate_parent-flag-from-pll-clocks.patch
mmc-vub300-fix-an-error-code.patch
i2c-core-run-atomic-i2c-xfer-when-preemptible.patch
mcb-fix-error-handling-for-different-scenarios-when-parsing.patch
dmaengine-stm32-mdma-correct-desc-prep-when-channel-running.patch
-s390-cmma-fix-initial-kernel-address-space-page-table-walk.patch
s390-cmma-fix-handling-of-swapper_pg_dir-and-invalid_pg_dir.patch
mm-cma-use-nth_page-in-place-of-direct-struct-page-manipulation.patch
mm-memory_hotplug-use-pfn-math-in-place-of-direct-struct-page-manipulation.patch
i3c-master-cdns-fix-reading-status-register.patch
parisc-prevent-booting-64-bit-kernels-on-pa1.x-machines.patch
parisc-pgtable-do-not-drop-upper-5-address-bits-of-physical-address.patch
-parisc-power-fix-power-soft-off-when-running-on-qemu.patch
xhci-enable-rpm-on-controllers-that-support-low-power-states.patch
alsa-info-fix-potential-deadlock-at-disconnection.patch
alsa-hda-realtek-add-dell-alc295-to-pin-fall-back-table.patch
drm-amdgpu-fix-error-handling-in-amdgpu_bo_list_get.patch
drm-amd-display-change-the-dmcub-mailbox-memory-location-from-fb-to-inbox.patch
io_uring-fdinfo-lock-sq-thread-while-retrieving-thread-cpu-pid.patch
-powerpc-powernv-fix-fortify-source-warnings-in-opal-prd.c.patch
tracing-have-trace_event_file-have-ref-counters.patch
netfilter-nftables-update-table-flags-from-the-commit-phase.patch
netfilter-nf_tables-fix-table-flag-updates.patch
+++ /dev/null
-From d0c219472980d15f5cbc5c8aec736848bda3f235 Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Tue, 17 Oct 2023 22:19:53 +0200
-Subject: parisc/power: Add power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.
-
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -197,6 +197,14 @@ static struct notifier_block parisc_pani
- .priority = INT_MAX,
- };
-
-+/* qemu soft power-off function */
-+static int qemu_power_off(struct sys_off_data *data)
-+{
-+ /* this turns the system off via SeaBIOS */
-+ *(int *)data->cb_data = 0;
-+ pdc_soft_power_button(1);
-+ return NOTIFY_DONE;
-+}
-
- static int __init power_init(void)
- {
-@@ -226,7 +234,13 @@ static int __init power_init(void)
- soft_power_reg);
- }
-
-- power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME);
-+ power_task = NULL;
-+ if (running_on_qemu && soft_power_reg)
-+ register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
-+ qemu_power_off, (void *)soft_power_reg);
-+ else
-+ power_task = kthread_run(kpowerswd, (void*)soft_power_reg,
-+ KTHREAD_NAME);
- if (IS_ERR(power_task)) {
- printk(KERN_ERR DRIVER_NAME ": thread creation failed. Driver not loaded.\n");
- pdc_soft_power_button(0);
+++ /dev/null
-From 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Fri, 17 Nov 2023 16:43:52 +0100
-Subject: parisc/power: Fix power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf upstream.
-
-Firmware returns the physical address of the power switch,
-so need to use gsc_writel() instead of direct memory access.
-
-Fixes: d0c219472980 ("parisc/power: Add power soft-off when running on qemu")
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -201,7 +201,7 @@ static struct notifier_block parisc_pani
- static int qemu_power_off(struct sys_off_data *data)
- {
- /* this turns the system off via SeaBIOS */
-- *(int *)data->cb_data = 0;
-+ gsc_writel(0, (unsigned long) data->cb_data);
- pdc_soft_power_button(1);
- return NOTIFY_DONE;
- }
set_bit(PG_arch_1, &page[i].flags);
}
mark_kernel_pud(p4d, addr, next);
-@@ -181,7 +181,7 @@ static void mark_kernel_pgd(void)
+@@ -174,7 +174,7 @@ static void mark_kernel_pgd(void)
continue;
if (!pgd_folded(*pgd)) {
page = phys_to_page(pgd_val(*pgd));
--- a/arch/s390/mm/page-states.c
+++ b/arch/s390/mm/page-states.c
-@@ -198,6 +198,12 @@ void __init cmma_init_nodat(void)
+@@ -191,6 +191,12 @@ void __init cmma_init_nodat(void)
return;
/* Mark pages used in kernel page tables */
mark_kernel_pgd();
+++ /dev/null
-From 16ba44826a04834d3eeeda4b731c2ea3481062b7 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <hca@linux.ibm.com>
-Date: Tue, 17 Oct 2023 21:07:03 +0200
-Subject: s390/cmma: fix initial kernel address space page table walk
-
-From: Heiko Carstens <hca@linux.ibm.com>
-
-commit 16ba44826a04834d3eeeda4b731c2ea3481062b7 upstream.
-
-If the cmma no-dat feature is available the kernel page tables are walked
-to identify and mark all pages which are used for address translation (all
-region, segment, and page tables). In a subsequent loop all other pages are
-marked as "no-dat" pages with the ESSA instruction.
-
-This information is visible to the hypervisor, so that the hypervisor can
-optimize purging of guest TLB entries. The initial loop however does not
-cover the complete kernel address space. This can result in pages being
-marked as not being used for dynamic address translation, even though they
-are. In turn guest TLB entries incorrectly may not be purged.
-
-Fix this by adjusting the end address of the kernel address range being
-walked.
-
-Cc: <stable@vger.kernel.org>
-Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
-Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
-Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/mm/page-states.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/arch/s390/mm/page-states.c
-+++ b/arch/s390/mm/page-states.c
-@@ -161,15 +161,22 @@ static void mark_kernel_p4d(pgd_t *pgd,
-
- static void mark_kernel_pgd(void)
- {
-- unsigned long addr, next;
-+ unsigned long addr, next, max_addr;
- struct page *page;
- pgd_t *pgd;
- int i;
-
- addr = 0;
-+ /*
-+ * Figure out maximum virtual address accessible with the
-+ * kernel ASCE. This is required to keep the page table walker
-+ * from accessing non-existent entries.
-+ */
-+ max_addr = (S390_lowcore.kernel_asce.val & _ASCE_TYPE_MASK) >> 2;
-+ max_addr = 1UL << (max_addr * 11 + 31);
- pgd = pgd_offset_k(addr);
- do {
-- next = pgd_addr_end(addr, MODULES_END);
-+ next = pgd_addr_end(addr, max_addr);
- if (pgd_none(*pgd))
- continue;
- if (!pgd_folded(*pgd)) {
-@@ -178,7 +185,7 @@ static void mark_kernel_pgd(void)
- set_bit(PG_arch_1, &page[i].flags);
- }
- mark_kernel_p4d(pgd, addr, next);
-- } while (pgd++, addr = next, addr != MODULES_END);
-+ } while (pgd++, addr = next, addr != max_addr);
- }
-
- void __init cmma_init_nodat(void)
acpi-resource-do-irq-override-on-tongfang-gmxxgxx.patch
arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-15.x-or-newer.patch
parisc-pdc-add-width-field-to-struct-pdc_model.patch
-parisc-power-add-power-soft-off-when-running-on-qemu.patch
clk-socfpga-fix-undefined-behavior-bug-in-struct-stratix10_clock_data.patch
clk-qcom-ipq8074-drop-the-clk_set_rate_parent-flag-from-pll-clocks.patch
clk-qcom-ipq6018-drop-the-clk_set_rate_parent-flag-from-pll-clocks.patch
tracing-have-the-user-copy-of-synthetic-event-address-use-correct-context.patch
mcb-fix-error-handling-for-different-scenarios-when-parsing.patch
dmaengine-stm32-mdma-correct-desc-prep-when-channel-running.patch
-s390-cmma-fix-initial-kernel-address-space-page-table-walk.patch
s390-cmma-fix-detection-of-dat-pages.patch
s390-cmma-fix-handling-of-swapper_pg_dir-and-invalid_pg_dir.patch
mm-cma-use-nth_page-in-place-of-direct-struct-page-manipulation.patch
i3c-master-svc-fix-sda-keep-low-when-polling-ibiwon-timeout-happen.patch
parisc-prevent-booting-64-bit-kernels-on-pa1.x-machines.patch
parisc-pgtable-do-not-drop-upper-5-address-bits-of-physical-address.patch
-parisc-power-fix-power-soft-off-when-running-on-qemu.patch
xhci-enable-rpm-on-controllers-that-support-low-power-states.patch
alsa-info-fix-potential-deadlock-at-disconnection.patch
alsa-hda-realtek-add-dell-alc295-to-pin-fall-back-table.patch
+++ /dev/null
-From d0c219472980d15f5cbc5c8aec736848bda3f235 Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Tue, 17 Oct 2023 22:19:53 +0200
-Subject: parisc/power: Add power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.
-
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -192,6 +192,14 @@ static struct notifier_block parisc_pani
- .priority = INT_MAX,
- };
-
-+/* qemu soft power-off function */
-+static int qemu_power_off(struct sys_off_data *data)
-+{
-+ /* this turns the system off via SeaBIOS */
-+ *(int *)data->cb_data = 0;
-+ pdc_soft_power_button(1);
-+ return NOTIFY_DONE;
-+}
-
- static int __init power_init(void)
- {
-@@ -221,7 +229,13 @@ static int __init power_init(void)
- soft_power_reg);
- }
-
-- power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME);
-+ power_task = NULL;
-+ if (running_on_qemu && soft_power_reg)
-+ register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
-+ qemu_power_off, (void *)soft_power_reg);
-+ else
-+ power_task = kthread_run(kpowerswd, (void*)soft_power_reg,
-+ KTHREAD_NAME);
- if (IS_ERR(power_task)) {
- printk(KERN_ERR DRIVER_NAME ": thread creation failed. Driver not loaded.\n");
- pdc_soft_power_button(0);
+++ /dev/null
-From 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf Mon Sep 17 00:00:00 2001
-From: Helge Deller <deller@gmx.de>
-Date: Fri, 17 Nov 2023 16:43:52 +0100
-Subject: parisc/power: Fix power soft-off when running on qemu
-
-From: Helge Deller <deller@gmx.de>
-
-commit 6ad6e15a9c46b8f0932cd99724f26f3db4db1cdf upstream.
-
-Firmware returns the physical address of the power switch,
-so need to use gsc_writel() instead of direct memory access.
-
-Fixes: d0c219472980 ("parisc/power: Add power soft-off when running on qemu")
-Signed-off-by: Helge Deller <deller@gmx.de>
-Cc: stable@vger.kernel.org # v6.0+
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/parisc/power.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/parisc/power.c
-+++ b/drivers/parisc/power.c
-@@ -196,7 +196,7 @@ static struct notifier_block parisc_pani
- static int qemu_power_off(struct sys_off_data *data)
- {
- /* this turns the system off via SeaBIOS */
-- *(int *)data->cb_data = 0;
-+ gsc_writel(0, (unsigned long) data->cb_data);
- pdc_soft_power_button(1);
- return NOTIFY_DONE;
- }
--- a/arch/s390/mm/page-states.c
+++ b/arch/s390/mm/page-states.c
-@@ -198,6 +198,12 @@ void __init cmma_init_nodat(void)
+@@ -191,6 +191,12 @@ void __init cmma_init_nodat(void)
return;
/* Mark pages used in kernel page tables */
mark_kernel_pgd();
+++ /dev/null
-From 16ba44826a04834d3eeeda4b731c2ea3481062b7 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <hca@linux.ibm.com>
-Date: Tue, 17 Oct 2023 21:07:03 +0200
-Subject: s390/cmma: fix initial kernel address space page table walk
-
-From: Heiko Carstens <hca@linux.ibm.com>
-
-commit 16ba44826a04834d3eeeda4b731c2ea3481062b7 upstream.
-
-If the cmma no-dat feature is available the kernel page tables are walked
-to identify and mark all pages which are used for address translation (all
-region, segment, and page tables). In a subsequent loop all other pages are
-marked as "no-dat" pages with the ESSA instruction.
-
-This information is visible to the hypervisor, so that the hypervisor can
-optimize purging of guest TLB entries. The initial loop however does not
-cover the complete kernel address space. This can result in pages being
-marked as not being used for dynamic address translation, even though they
-are. In turn guest TLB entries incorrectly may not be purged.
-
-Fix this by adjusting the end address of the kernel address range being
-walked.
-
-Cc: <stable@vger.kernel.org>
-Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
-Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
-Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/mm/page-states.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/arch/s390/mm/page-states.c
-+++ b/arch/s390/mm/page-states.c
-@@ -161,15 +161,22 @@ static void mark_kernel_p4d(pgd_t *pgd,
-
- static void mark_kernel_pgd(void)
- {
-- unsigned long addr, next;
-+ unsigned long addr, next, max_addr;
- struct page *page;
- pgd_t *pgd;
- int i;
-
- addr = 0;
-+ /*
-+ * Figure out maximum virtual address accessible with the
-+ * kernel ASCE. This is required to keep the page table walker
-+ * from accessing non-existent entries.
-+ */
-+ max_addr = (S390_lowcore.kernel_asce.val & _ASCE_TYPE_MASK) >> 2;
-+ max_addr = 1UL << (max_addr * 11 + 31);
- pgd = pgd_offset_k(addr);
- do {
-- next = pgd_addr_end(addr, MODULES_END);
-+ next = pgd_addr_end(addr, max_addr);
- if (pgd_none(*pgd))
- continue;
- if (!pgd_folded(*pgd)) {
-@@ -178,7 +185,7 @@ static void mark_kernel_pgd(void)
- set_bit(PG_arch_1, &page[i].flags);
- }
- mark_kernel_p4d(pgd, addr, next);
-- } while (pgd++, addr = next, addr != MODULES_END);
-+ } while (pgd++, addr = next, addr != max_addr);
- }
-
- void __init cmma_init_nodat(void)
Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 3 ++-
+ drivers/tty/serial/meson_uart.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 4c3616cc00833..6a74a31231ebf 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -664,12 +664,13 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -668,12 +668,13 @@ static int meson_uart_probe(struct platf
struct resource *res_mem, *res_irq;
struct uart_port *port;
int ret = 0;
for (id = AML_UART_PORT_OFFSET; id < AML_UART_PORT_NUM; id++) {
if (!meson_ports[id]) {
pdev->id = id;
---
-2.42.0
-
Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 11 ++++++-----
+ drivers/tty/serial/meson_uart.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 7563fd215d816..a193cbc78ebc0 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -661,10 +661,11 @@ static int meson_uart_probe_clocks(struct platform_device *pdev,
+@@ -665,10 +665,11 @@ static int meson_uart_probe_clocks(struc
static int meson_uart_probe(struct platform_device *pdev)
{
if (pdev->dev.of_node)
pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
-@@ -687,9 +688,9 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -691,9 +692,9 @@ static int meson_uart_probe(struct platf
if (!res_mem)
return -ENODEV;
of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
-@@ -714,7 +715,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -718,7 +719,7 @@ static int meson_uart_probe(struct platf
port->iotype = UPIO_MEM;
port->mapbase = res_mem->start;
port->mapsize = resource_size(res_mem);
- port->irq = res_irq->start;
+ port->irq = irq;
port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
- port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
port->dev = &pdev->dev;
---
-2.42.0
-
+ port->line = pdev->id;
pci-keystone-don-t-discard-.remove-callback.patch
pci-keystone-don-t-discard-.probe-callback.patch
parisc-pdc-add-width-field-to-struct-pdc_model.patch
-parisc-power-add-power-soft-off-when-running-on-qemu.patch
clk-qcom-ipq8074-drop-the-clk_set_rate_parent-flag-from-pll-clocks.patch
mmc-vub300-fix-an-error-code.patch
pm-hibernate-use-__get_safe_page-rather-than-touching-the-list.patch
i2c-core-run-atomic-i2c-xfer-when-preemptible.patch
mcb-fix-error-handling-for-different-scenarios-when-parsing.patch
dmaengine-stm32-mdma-correct-desc-prep-when-channel-running.patch
-s390-cmma-fix-initial-kernel-address-space-page-table-walk.patch
s390-cmma-fix-handling-of-swapper_pg_dir-and-invalid_pg_dir.patch
mm-cma-use-nth_page-in-place-of-direct-struct-page-manipulation.patch
i3c-master-cdns-fix-reading-status-register.patch
parisc-prevent-booting-64-bit-kernels-on-pa1.x-machines.patch
parisc-pgtable-do-not-drop-upper-5-address-bits-of-physical-address.patch
-parisc-power-fix-power-soft-off-when-running-on-qemu.patch
alsa-info-fix-potential-deadlock-at-disconnection.patch
alsa-hda-realtek-enable-internal-speaker-of-asus-k6500zc.patch
-tty-serial-migrate-meson_uart-to-use-has_sysrq.patch
serial-meson-remove-redundant-initialization-of-vari.patch
tty-serial-meson-retrieve-port-fifo-size-from-dt.patch
serial-meson-use-platform_get_irq-to-get-the-interru.patch
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 14 +++++++++++---
+ drivers/tty/serial/meson_uart.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index a193cbc78ebc0..60c0a4079e093 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -367,10 +367,14 @@ static void meson_uart_set_termios(struct uart_port *port,
+@@ -371,10 +371,14 @@ static void meson_uart_set_termios(struc
else
val |= AML_UART_STOP_BIT_1SB;
writel(val, port->membase + AML_UART_CONTROL);
-@@ -666,6 +670,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -670,6 +674,7 @@ static int meson_uart_probe(struct platf
u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
int ret = 0;
int irq;
if (pdev->dev.of_node)
pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
-@@ -693,6 +698,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -697,6 +702,7 @@ static int meson_uart_probe(struct platf
return irq;
of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
if (meson_ports[pdev->id]) {
dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
-@@ -717,6 +723,8 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -721,6 +727,8 @@ static int meson_uart_probe(struct platf
port->mapsize = resource_size(res_mem);
port->irq = irq;
port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
+ if (has_rtscts)
+ port->flags |= UPF_HARD_FLOW;
- port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
port->dev = &pdev->dev;
port->line = pdev->id;
---
-2.42.0
-
+ port->type = PORT_MESON;
Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/tty/serial/meson_uart.c | 5 ++++-
+ drivers/tty/serial/meson_uart.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 6a74a31231ebf..7563fd215d816 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
-@@ -663,6 +663,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -667,6 +667,7 @@ static int meson_uart_probe(struct platf
{
struct resource *res_mem, *res_irq;
struct uart_port *port;
int ret = 0;
if (pdev->dev.of_node)
-@@ -690,6 +691,8 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -694,6 +695,8 @@ static int meson_uart_probe(struct platf
if (!res_irq)
return -ENODEV;
if (meson_ports[pdev->id]) {
dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
return -EBUSY;
-@@ -719,7 +722,7 @@ static int meson_uart_probe(struct platform_device *pdev)
+@@ -722,7 +725,7 @@ static int meson_uart_probe(struct platf
port->type = PORT_MESON;
port->x_char = 0;
port->ops = &meson_uart_ops;
meson_ports[pdev->id] = port;
platform_set_drvdata(pdev, port);
---
-2.42.0
-
+++ /dev/null
-From f88dfceaf7310b7a5879a56a3d6a894504076038 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 13 Dec 2019 00:06:20 +0000
-Subject: tty/serial: Migrate meson_uart to use has_sysrq
-
-From: Dmitry Safonov <dima@arista.com>
-
-[ Upstream commit dca3ac8d3bc9436eb5fd35b80cdcad762fbfa518 ]
-
-The SUPPORT_SYSRQ ifdeffery is not nice as:
-- May create misunderstanding about sizeof(struct uart_port) between
- different objects
-- Prevents moving functions from serial_core.h
-- Reduces readability (well, it's ifdeffery - it's hard to follow)
-
-In order to remove SUPPORT_SYSRQ, has_sysrq variable has been added.
-Initialise it in driver's probe and remove ifdeffery.
-
-Cc: Kevin Hilman <khilman@baylibre.com>
-Cc: linux-arm-kernel@lists.infradead.org
-Cc: linux-amlogic@lists.infradead.org
-Signed-off-by: Dmitry Safonov <dima@arista.com>
-Link: https://lore.kernel.org/r/20191213000657.931618-22-dima@arista.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 2a1d728f20ed ("tty: serial: meson: fix hard LOCKUP on crtscts mode")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/tty/serial/meson_uart.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
-index 849ce8c1ef392..4c3616cc00833 100644
---- a/drivers/tty/serial/meson_uart.c
-+++ b/drivers/tty/serial/meson_uart.c
-@@ -5,10 +5,6 @@
- * Copyright (C) 2014 Carlo Caione <carlo@caione.org>
- */
-
--#if defined(CONFIG_SERIAL_MESON_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
--#define SUPPORT_SYSRQ
--#endif
--
- #include <linux/clk.h>
- #include <linux/console.h>
- #include <linux/delay.h>
-@@ -716,6 +712,7 @@ static int meson_uart_probe(struct platform_device *pdev)
- port->mapsize = resource_size(res_mem);
- port->irq = res_irq->start;
- port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
-+ port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
- port->dev = &pdev->dev;
- port->line = pdev->id;
- port->type = PORT_MESON;
---
-2.42.0
-