]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 19:22:34 +0000 (21:22 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 19:22:34 +0000 (21:22 +0200)
added patches:
clk-qcom-gcc-mdm9615-use-proper-parent-for-pll0_vote-clock.patch
drm-ast-fix-dram-init-on-ast2200.patch
fbdev-ep93xx-fb-do-not-assign-to-struct-fb_info.dev.patch
lib-test_meminit-allocate-pages-up-to-order-max_order.patch
nfsv4-pnfs-minor-fix-for-cleanup-path-in-nfs4_get_device_info.patch
parisc-led-fix-lan-receive-and-transmit-leds.patch
parisc-led-reduce-cpu-overhead-for-disk-lan-led-computation.patch
soc-qcom-qmi_encdec-restrict-string-length-in-decode.patch

queue-5.4/clk-qcom-gcc-mdm9615-use-proper-parent-for-pll0_vote-clock.patch [new file with mode: 0644]
queue-5.4/drm-ast-fix-dram-init-on-ast2200.patch [new file with mode: 0644]
queue-5.4/fbdev-ep93xx-fb-do-not-assign-to-struct-fb_info.dev.patch [new file with mode: 0644]
queue-5.4/lib-test_meminit-allocate-pages-up-to-order-max_order.patch [new file with mode: 0644]
queue-5.4/nfsv4-pnfs-minor-fix-for-cleanup-path-in-nfs4_get_device_info.patch [new file with mode: 0644]
queue-5.4/parisc-led-fix-lan-receive-and-transmit-leds.patch [new file with mode: 0644]
queue-5.4/parisc-led-reduce-cpu-overhead-for-disk-lan-led-computation.patch [new file with mode: 0644]
queue-5.4/series
queue-5.4/soc-qcom-qmi_encdec-restrict-string-length-in-decode.patch [new file with mode: 0644]

diff --git a/queue-5.4/clk-qcom-gcc-mdm9615-use-proper-parent-for-pll0_vote-clock.patch b/queue-5.4/clk-qcom-gcc-mdm9615-use-proper-parent-for-pll0_vote-clock.patch
new file mode 100644 (file)
index 0000000..38cc442
--- /dev/null
@@ -0,0 +1,35 @@
+From 1583694bb4eaf186f17131dbc1b83d6057d2749b Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
+Date: Sat, 13 May 2023 00:17:23 +0300
+Subject: clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
+
+From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
+
+commit 1583694bb4eaf186f17131dbc1b83d6057d2749b upstream.
+
+The pll0_vote clock definitely should have pll0 as a parent (instead of
+pll8).
+
+Fixes: 7792a8d6713c ("clk: mdm9615: Add support for MDM9615 Clock Controllers")
+Cc: stable@kernel.org
+Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
+Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
+Link: https://lore.kernel.org/r/20230512211727.3445575-7-dmitry.baryshkov@linaro.org
+Signed-off-by: Bjorn Andersson <andersson@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/clk/qcom/gcc-mdm9615.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/clk/qcom/gcc-mdm9615.c
++++ b/drivers/clk/qcom/gcc-mdm9615.c
+@@ -58,7 +58,7 @@ static struct clk_regmap pll0_vote = {
+       .enable_mask = BIT(0),
+       .hw.init = &(struct clk_init_data){
+               .name = "pll0_vote",
+-              .parent_names = (const char *[]){ "pll8" },
++              .parent_names = (const char *[]){ "pll0" },
+               .num_parents = 1,
+               .ops = &clk_pll_vote_ops,
+       },
diff --git a/queue-5.4/drm-ast-fix-dram-init-on-ast2200.patch b/queue-5.4/drm-ast-fix-dram-init-on-ast2200.patch
new file mode 100644 (file)
index 0000000..5050266
--- /dev/null
@@ -0,0 +1,41 @@
+From 4cfe75f0f14f044dae66ad0e6eea812d038465d9 Mon Sep 17 00:00:00 2001
+From: Thomas Zimmermann <tzimmermann@suse.de>
+Date: Wed, 21 Jun 2023 14:53:35 +0200
+Subject: drm/ast: Fix DRAM init on AST2200
+
+From: Thomas Zimmermann <tzimmermann@suse.de>
+
+commit 4cfe75f0f14f044dae66ad0e6eea812d038465d9 upstream.
+
+Fix the test for the AST2200 in the DRAM initialization. The value
+in ast->chip has to be compared against an enum constant instead of
+a numerical value.
+
+This bug got introduced when the driver was first imported into the
+kernel.
+
+Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
+Fixes: 312fec1405dd ("drm: Initial KMS driver for AST (ASpeed Technologies) 2000 series (v2)")
+Cc: Dave Airlie <airlied@redhat.com>
+Cc: dri-devel@lists.freedesktop.org
+Cc: <stable@vger.kernel.org> # v3.5+
+Reviewed-by: Sui Jingfeng <suijingfeng@loongson.cn>
+Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
+Tested-by: Jocelyn Falempe <jfalempe@redhat.com> # AST2600
+Link: https://patchwork.freedesktop.org/patch/msgid/20230621130032.3568-2-tzimmermann@suse.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/ast/ast_post.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/ast/ast_post.c
++++ b/drivers/gpu/drm/ast/ast_post.c
+@@ -294,7 +294,7 @@ static void ast_init_dram_reg(struct drm
+                               ;
+                       } while (ast_read32(ast, 0x10100) != 0xa8);
+               } else {/* AST2100/1100 */
+-                      if (ast->chip == AST2100 || ast->chip == 2200)
++                      if (ast->chip == AST2100 || ast->chip == AST2200)
+                               dram_reg_info = ast2100_dram_table_data;
+                       else
+                               dram_reg_info = ast1100_dram_table_data;
diff --git a/queue-5.4/fbdev-ep93xx-fb-do-not-assign-to-struct-fb_info.dev.patch b/queue-5.4/fbdev-ep93xx-fb-do-not-assign-to-struct-fb_info.dev.patch
new file mode 100644 (file)
index 0000000..1241a9d
--- /dev/null
@@ -0,0 +1,40 @@
+From f90a0e5265b60cdd3c77990e8105f79aa2fac994 Mon Sep 17 00:00:00 2001
+From: Thomas Zimmermann <tzimmermann@suse.de>
+Date: Tue, 13 Jun 2023 13:06:49 +0200
+Subject: fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
+
+From: Thomas Zimmermann <tzimmermann@suse.de>
+
+commit f90a0e5265b60cdd3c77990e8105f79aa2fac994 upstream.
+
+Do not assing the Linux device to struct fb_info.dev. The call to
+register_framebuffer() initializes the field to the fbdev device.
+Drivers should not override its value.
+
+Fixes a bug where the driver incorrectly decreases the hardware
+device's reference counter and leaks the fbdev device.
+
+v2:
+       * add Fixes tag (Dan)
+
+Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
+Fixes: 88017bda96a5 ("ep93xx video driver")
+Cc: <stable@vger.kernel.org> # v2.6.32+
+Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
+Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
+Link: https://patchwork.freedesktop.org/patch/msgid/20230613110953.24176-15-tzimmermann@suse.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/video/fbdev/ep93xx-fb.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/video/fbdev/ep93xx-fb.c
++++ b/drivers/video/fbdev/ep93xx-fb.c
+@@ -474,7 +474,6 @@ static int ep93xxfb_probe(struct platfor
+       if (!info)
+               return -ENOMEM;
+-      info->dev = &pdev->dev;
+       platform_set_drvdata(pdev, info);
+       fbi = info->par;
+       fbi->mach_info = mach_info;
diff --git a/queue-5.4/lib-test_meminit-allocate-pages-up-to-order-max_order.patch b/queue-5.4/lib-test_meminit-allocate-pages-up-to-order-max_order.patch
new file mode 100644 (file)
index 0000000..87e5006
--- /dev/null
@@ -0,0 +1,44 @@
+From efb78fa86e95832b78ca0ba60f3706788a818938 Mon Sep 17 00:00:00 2001
+From: Andrew Donnellan <ajd@linux.ibm.com>
+Date: Fri, 14 Jul 2023 11:52:38 +1000
+Subject: lib/test_meminit: allocate pages up to order MAX_ORDER
+
+From: Andrew Donnellan <ajd@linux.ibm.com>
+
+commit efb78fa86e95832b78ca0ba60f3706788a818938 upstream.
+
+test_pages() tests the page allocator by calling alloc_pages() with
+different orders up to order 10.
+
+However, different architectures and platforms support different maximum
+contiguous allocation sizes.  The default maximum allocation order
+(MAX_ORDER) is 10, but architectures can use CONFIG_ARCH_FORCE_MAX_ORDER
+to override this.  On platforms where this is less than 10, test_meminit()
+will blow up with a WARN().  This is expected, so let's not do that.
+
+Replace the hardcoded "10" with the MAX_ORDER macro so that we test
+allocations up to the expected platform limit.
+
+Link: https://lkml.kernel.org/r/20230714015238.47931-1-ajd@linux.ibm.com
+Fixes: 5015a300a522 ("lib: introduce test_meminit module")
+Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
+Reviewed-by: Alexander Potapenko <glider@google.com>
+Cc: Xiaoke Wang <xkernel.wang@foxmail.com>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ lib/test_meminit.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/lib/test_meminit.c
++++ b/lib/test_meminit.c
+@@ -86,7 +86,7 @@ static int __init test_pages(int *total_
+       int failures = 0, num_tests = 0;
+       int i;
+-      for (i = 0; i < 10; i++)
++      for (i = 0; i <= MAX_ORDER; i++)
+               num_tests += do_alloc_pages_order(i, &failures);
+       REPORT_FAILURES_IN_FN();
diff --git a/queue-5.4/nfsv4-pnfs-minor-fix-for-cleanup-path-in-nfs4_get_device_info.patch b/queue-5.4/nfsv4-pnfs-minor-fix-for-cleanup-path-in-nfs4_get_device_info.patch
new file mode 100644 (file)
index 0000000..cc6dd36
--- /dev/null
@@ -0,0 +1,35 @@
+From 96562c45af5c31b89a197af28f79bfa838fb8391 Mon Sep 17 00:00:00 2001
+From: Fedor Pchelkin <pchelkin@ispras.ru>
+Date: Thu, 20 Jul 2023 18:37:51 +0300
+Subject: NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
+
+From: Fedor Pchelkin <pchelkin@ispras.ru>
+
+commit 96562c45af5c31b89a197af28f79bfa838fb8391 upstream.
+
+It is an almost improbable error case but when page allocating loop in
+nfs4_get_device_info() fails then we should only free the already
+allocated pages, as __free_page() can't deal with NULL arguments.
+
+Found by Linux Verification Center (linuxtesting.org).
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
+Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/nfs/pnfs_dev.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/nfs/pnfs_dev.c
++++ b/fs/nfs/pnfs_dev.c
+@@ -152,7 +152,7 @@ nfs4_get_device_info(struct nfs_server *
+               set_bit(NFS_DEVICEID_NOCACHE, &d->flags);
+ out_free_pages:
+-      for (i = 0; i < max_pages; i++)
++      while (--i >= 0)
+               __free_page(pages[i]);
+       kfree(pages);
+ out_free_pdev:
diff --git a/queue-5.4/parisc-led-fix-lan-receive-and-transmit-leds.patch b/queue-5.4/parisc-led-fix-lan-receive-and-transmit-leds.patch
new file mode 100644 (file)
index 0000000..79cffe0
--- /dev/null
@@ -0,0 +1,32 @@
+From 4db89524b084f712a887256391fc19d9f66c8e55 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Sun, 27 Aug 2023 13:46:11 +0200
+Subject: parisc: led: Fix LAN receive and transmit LEDs
+
+From: Helge Deller <deller@gmx.de>
+
+commit 4db89524b084f712a887256391fc19d9f66c8e55 upstream.
+
+Fix the LAN receive and LAN transmit LEDs, which where swapped
+up to now.
+
+Signed-off-by: Helge Deller <deller@gmx.de>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/parisc/include/asm/led.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/parisc/include/asm/led.h
++++ b/arch/parisc/include/asm/led.h
+@@ -11,8 +11,8 @@
+ #define       LED1            0x02
+ #define       LED0            0x01            /* bottom (or furthest left) LED */
+-#define       LED_LAN_TX      LED0            /* for LAN transmit activity */
+-#define       LED_LAN_RCV     LED1            /* for LAN receive activity */
++#define       LED_LAN_RCV     LED0            /* for LAN receive activity */
++#define       LED_LAN_TX      LED1            /* for LAN transmit activity */
+ #define       LED_DISK_IO     LED2            /* for disk activity */
+ #define       LED_HEARTBEAT   LED3            /* heartbeat */
diff --git a/queue-5.4/parisc-led-reduce-cpu-overhead-for-disk-lan-led-computation.patch b/queue-5.4/parisc-led-reduce-cpu-overhead-for-disk-lan-led-computation.patch
new file mode 100644 (file)
index 0000000..c138b43
--- /dev/null
@@ -0,0 +1,38 @@
+From 358ad816e52d4253b38c2f312e6b1cbd89e0dbf7 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Fri, 25 Aug 2023 17:46:39 +0200
+Subject: parisc: led: Reduce CPU overhead for disk & lan LED computation
+
+From: Helge Deller <deller@gmx.de>
+
+commit 358ad816e52d4253b38c2f312e6b1cbd89e0dbf7 upstream.
+
+Older PA-RISC machines have LEDs which show the disk- and LAN-activity.
+The computation is done in software and takes quite some time, e.g. on a
+J6500 this may take up to 60% time of one CPU if the machine is loaded
+via network traffic.
+
+Since most people don't care about the LEDs, start with LEDs disabled and
+just show a CPU heartbeat LED. The disk and LAN LEDs can be turned on
+manually via /proc/pdc/led.
+
+Signed-off-by: Helge Deller <deller@gmx.de>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/parisc/led.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/parisc/led.c
++++ b/drivers/parisc/led.c
+@@ -56,8 +56,8 @@
+ static int led_type __read_mostly = -1;
+ static unsigned char lastleds;        /* LED state from most recent update */
+ static unsigned int led_heartbeat __read_mostly = 1;
+-static unsigned int led_diskio    __read_mostly = 1;
+-static unsigned int led_lanrxtx   __read_mostly = 1;
++static unsigned int led_diskio    __read_mostly;
++static unsigned int led_lanrxtx   __read_mostly;
+ static char lcd_text[32]          __read_mostly;
+ static char lcd_text_default[32]  __read_mostly;
+ static int  lcd_no_led_support    __read_mostly = 0; /* KittyHawk doesn't support LED on its LCD */
index 6fe864d960ea1bb14a0c7e8284892b8dbfbedd03..3ff5e35dca2939354ce4d42f80d410364dd07f2e 100644 (file)
@@ -242,3 +242,11 @@ scsi-qla2xxx-fix-inconsistent-tmf-timeout.patch
 scsi-qla2xxx-fix-erroneous-link-up-failure.patch
 scsi-qla2xxx-turn-off-noisy-message-log.patch
 scsi-qla2xxx-remove-unsupported-ql2xenabledif-option.patch
+fbdev-ep93xx-fb-do-not-assign-to-struct-fb_info.dev.patch
+drm-ast-fix-dram-init-on-ast2200.patch
+lib-test_meminit-allocate-pages-up-to-order-max_order.patch
+parisc-led-fix-lan-receive-and-transmit-leds.patch
+parisc-led-reduce-cpu-overhead-for-disk-lan-led-computation.patch
+clk-qcom-gcc-mdm9615-use-proper-parent-for-pll0_vote-clock.patch
+soc-qcom-qmi_encdec-restrict-string-length-in-decode.patch
+nfsv4-pnfs-minor-fix-for-cleanup-path-in-nfs4_get_device_info.patch
diff --git a/queue-5.4/soc-qcom-qmi_encdec-restrict-string-length-in-decode.patch b/queue-5.4/soc-qcom-qmi_encdec-restrict-string-length-in-decode.patch
new file mode 100644 (file)
index 0000000..cbba8e3
--- /dev/null
@@ -0,0 +1,38 @@
+From 8d207400fd6b79c92aeb2f33bb79f62dff904ea2 Mon Sep 17 00:00:00 2001
+From: Chris Lew <quic_clew@quicinc.com>
+Date: Tue, 1 Aug 2023 12:17:12 +0530
+Subject: soc: qcom: qmi_encdec: Restrict string length in decode
+
+From: Chris Lew <quic_clew@quicinc.com>
+
+commit 8d207400fd6b79c92aeb2f33bb79f62dff904ea2 upstream.
+
+The QMI TLV value for strings in a lot of qmi element info structures
+account for null terminated strings with MAX_LEN + 1. If a string is
+actually MAX_LEN + 1 length, this will cause an out of bounds access
+when the NULL character is appended in decoding.
+
+Fixes: 9b8a11e82615 ("soc: qcom: Introduce QMI encoder/decoder")
+Cc: stable@vger.kernel.org
+Signed-off-by: Chris Lew <quic_clew@quicinc.com>
+Signed-off-by: Praveenkumar I <quic_ipkumar@quicinc.com>
+Link: https://lore.kernel.org/r/20230801064712.3590128-1-quic_ipkumar@quicinc.com
+Signed-off-by: Bjorn Andersson <andersson@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/soc/qcom/qmi_encdec.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/soc/qcom/qmi_encdec.c
++++ b/drivers/soc/qcom/qmi_encdec.c
+@@ -534,8 +534,8 @@ static int qmi_decode_string_elem(struct
+               decoded_bytes += rc;
+       }
+-      if (string_len > temp_ei->elem_len) {
+-              pr_err("%s: String len %d > Max Len %d\n",
++      if (string_len >= temp_ei->elem_len) {
++              pr_err("%s: String len %d >= Max Len %d\n",
+                      __func__, string_len, temp_ei->elem_len);
+               return -ETOOSMALL;
+       } else if (string_len > tlv_len) {