From: Greg Kroah-Hartman Date: Sun, 3 Sep 2023 12:50:25 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v6.5.2~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=27f68f931e48d4858d08846256fae8727335dc90;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: firmware-stratix10-svc-fix-an-null-vs-is_err-bug-in-probe.patch fsi-master-ast-cf-add-module_firmware-macro.patch nilfs2-fix-general-protection-fault-in-nilfs_lookup_dirty_data_buffers.patch serial-sc16is7xx-fix-bug-when-first-setting-gpio-direction.patch --- diff --git a/queue-5.4/firmware-stratix10-svc-fix-an-null-vs-is_err-bug-in-probe.patch b/queue-5.4/firmware-stratix10-svc-fix-an-null-vs-is_err-bug-in-probe.patch new file mode 100644 index 00000000000..a5e03bf524a --- /dev/null +++ b/queue-5.4/firmware-stratix10-svc-fix-an-null-vs-is_err-bug-in-probe.patch @@ -0,0 +1,33 @@ +From dd218433f2b635d97e8fda3eed047151fd528ce4 Mon Sep 17 00:00:00 2001 +From: Wang Ming +Date: Thu, 27 Jul 2023 14:37:50 -0500 +Subject: firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe + +From: Wang Ming + +commit dd218433f2b635d97e8fda3eed047151fd528ce4 upstream. + +The devm_memremap() function returns error pointers. +It never returns NULL. Fix the check. + +Fixes: 7ca5ce896524 ("firmware: add Intel Stratix10 service layer driver") +Cc: stable@vger.kernel.org +Signed-off-by: Wang Ming +Signed-off-by: Dinh Nguyen +Link: https://lore.kernel.org/r/20230727193750.983795-1-dinguyen@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/firmware/stratix10-svc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/firmware/stratix10-svc.c ++++ b/drivers/firmware/stratix10-svc.c +@@ -616,7 +616,7 @@ svc_create_memory_pool(struct platform_d + paddr = begin; + size = end - begin; + va = devm_memremap(dev, paddr, size, MEMREMAP_WC); +- if (!va) { ++ if (IS_ERR(va)) { + dev_err(dev, "fail to remap shared memory\n"); + return ERR_PTR(-EINVAL); + } diff --git a/queue-5.4/fsi-master-ast-cf-add-module_firmware-macro.patch b/queue-5.4/fsi-master-ast-cf-add-module_firmware-macro.patch new file mode 100644 index 00000000000..94e6cf9c1dd --- /dev/null +++ b/queue-5.4/fsi-master-ast-cf-add-module_firmware-macro.patch @@ -0,0 +1,29 @@ +From 3a1d7aff6e65ad6e285e28abe55abbfd484997ee Mon Sep 17 00:00:00 2001 +From: Juerg Haefliger +Date: Wed, 28 Jun 2023 11:50:39 +0200 +Subject: fsi: master-ast-cf: Add MODULE_FIRMWARE macro + +From: Juerg Haefliger + +commit 3a1d7aff6e65ad6e285e28abe55abbfd484997ee upstream. + +The module loads firmware so add a MODULE_FIRMWARE macro to provide that +information via modinfo. + +Fixes: 6a794a27daca ("fsi: master-ast-cf: Add new FSI master using Aspeed ColdFire") +Cc: stable@vger.kernel.org # 4.19+ +Signed-off-by: Juerg Haefliger +Link: https://lore.kernel.org/r/20230628095039.26218-1-juerg.haefliger@canonical.com +Signed-off-by: Joel Stanley +Signed-off-by: Greg Kroah-Hartman +--- + drivers/fsi/fsi-master-ast-cf.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/fsi/fsi-master-ast-cf.c ++++ b/drivers/fsi/fsi-master-ast-cf.c +@@ -1438,3 +1438,4 @@ static struct platform_driver fsi_master + + module_platform_driver(fsi_master_acf); + MODULE_LICENSE("GPL"); ++MODULE_FIRMWARE(FW_FILE_NAME); diff --git a/queue-5.4/nilfs2-fix-general-protection-fault-in-nilfs_lookup_dirty_data_buffers.patch b/queue-5.4/nilfs2-fix-general-protection-fault-in-nilfs_lookup_dirty_data_buffers.patch new file mode 100644 index 00000000000..5a0247c0cde --- /dev/null +++ b/queue-5.4/nilfs2-fix-general-protection-fault-in-nilfs_lookup_dirty_data_buffers.patch @@ -0,0 +1,48 @@ +From f83913f8c5b882a312e72b7669762f8a5c9385e4 Mon Sep 17 00:00:00 2001 +From: Ryusuke Konishi +Date: Sat, 5 Aug 2023 22:20:38 +0900 +Subject: nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers() + +From: Ryusuke Konishi + +commit f83913f8c5b882a312e72b7669762f8a5c9385e4 upstream. + +A syzbot stress test reported that create_empty_buffers() called from +nilfs_lookup_dirty_data_buffers() can cause a general protection fault. + +Analysis using its reproducer revealed that the back reference "mapping" +from a page/folio has been changed to NULL after dirty page/folio gang +lookup in nilfs_lookup_dirty_data_buffers(). + +Fix this issue by excluding pages/folios from being collected if, after +acquiring a lock on each page/folio, its back reference "mapping" differs +from the pointer to the address space struct that held the page/folio. + +Link: https://lkml.kernel.org/r/20230805132038.6435-1-konishi.ryusuke@gmail.com +Signed-off-by: Ryusuke Konishi +Reported-by: syzbot+0ad741797f4565e7e2d2@syzkaller.appspotmail.com +Closes: https://lkml.kernel.org/r/0000000000002930a705fc32b231@google.com +Tested-by: Ryusuke Konishi +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Ryusuke Konishi +Signed-off-by: Greg Kroah-Hartman +--- +fs/nilfs2/segment.c | 5 +++++ + fs/nilfs2/segment.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/fs/nilfs2/segment.c ++++ b/fs/nilfs2/segment.c +@@ -730,6 +730,11 @@ static size_t nilfs_lookup_dirty_data_bu + struct page *page = pvec.pages[i]; + + lock_page(page); ++ if (unlikely(page->mapping != mapping)) { ++ /* Exclude pages removed from the address space */ ++ unlock_page(page); ++ continue; ++ } + if (!page_has_buffers(page)) + create_empty_buffers(page, i_blocksize(inode), 0); + unlock_page(page); diff --git a/queue-5.4/serial-sc16is7xx-fix-bug-when-first-setting-gpio-direction.patch b/queue-5.4/serial-sc16is7xx-fix-bug-when-first-setting-gpio-direction.patch new file mode 100644 index 00000000000..e457bb82f71 --- /dev/null +++ b/queue-5.4/serial-sc16is7xx-fix-bug-when-first-setting-gpio-direction.patch @@ -0,0 +1,59 @@ +From 9baeea723c0fb9c3ba9a336369f758ed9bc6831d Mon Sep 17 00:00:00 2001 +From: Hugo Villeneuve +Date: Mon, 7 Aug 2023 17:45:55 -0400 +Subject: serial: sc16is7xx: fix bug when first setting GPIO direction + +From: Hugo Villeneuve + +commit 9baeea723c0fb9c3ba9a336369f758ed9bc6831d upstream. + +When configuring a pin as an output pin with a value of logic 0, we +end up as having a value of logic 1 on the output pin. Setting a +logic 0 a second time (or more) after that will correctly output a +logic 0 on the output pin. + +By default, all GPIO pins are configured as inputs. When we enter +sc16is7xx_gpio_direction_output() for the first time, we first set the +desired value in IOSTATE, and then we configure the pin as an output. +The datasheet states that writing to IOSTATE register will trigger a +transfer of the value to the I/O pin configured as output, so if the +pin is configured as an input, nothing will be transferred. + +Therefore, set the direction first in IODIR, and then set the desired +value in IOSTATE. + +This is what is done in NXP application note AN10587. + +Fixes: dfeae619d781 ("serial: sc16is7xx") +Cc: stable@vger.kernel.org +Signed-off-by: Hugo Villeneuve +Reviewed-by: Lech Perczak +Tested-by: Lech Perczak +Link: https://lore.kernel.org/r/20230807214556.540627-6-hugo@hugovil.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/tty/serial/sc16is7xx.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +--- a/drivers/tty/serial/sc16is7xx.c ++++ b/drivers/tty/serial/sc16is7xx.c +@@ -1166,9 +1166,18 @@ static int sc16is7xx_gpio_direction_outp + state |= BIT(offset); + else + state &= ~BIT(offset); +- sc16is7xx_port_write(port, SC16IS7XX_IOSTATE_REG, state); ++ ++ /* ++ * If we write IOSTATE first, and then IODIR, the output value is not ++ * transferred to the corresponding I/O pin. ++ * The datasheet states that each register bit will be transferred to ++ * the corresponding I/O pin programmed as output when writing to ++ * IOSTATE. Therefore, configure direction first with IODIR, and then ++ * set value after with IOSTATE. ++ */ + sc16is7xx_port_update(port, SC16IS7XX_IODIR_REG, BIT(offset), + BIT(offset)); ++ sc16is7xx_port_write(port, SC16IS7XX_IOSTATE_REG, state); + + return 0; + } diff --git a/queue-5.4/series b/queue-5.4/series index 71451ac8a2e..fc39457f4e2 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -9,3 +9,7 @@ usb-serial-option-add-foxconn-t99w368-t99w373-product.patch hid-wacom-remove-the-battery-when-the-ekr-is-off.patch staging-rtl8712-fix-race-condition.patch bluetooth-btsdio-fix-use-after-free-bug-in-btsdio_remove-due-to-race-condition.patch +serial-sc16is7xx-fix-bug-when-first-setting-gpio-direction.patch +firmware-stratix10-svc-fix-an-null-vs-is_err-bug-in-probe.patch +fsi-master-ast-cf-add-module_firmware-macro.patch +nilfs2-fix-general-protection-fault-in-nilfs_lookup_dirty_data_buffers.patch