]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 6.6
authorSasha Levin <sashal@kernel.org>
Thu, 14 Nov 2024 18:07:17 +0000 (13:07 -0500)
committerSasha Levin <sashal@kernel.org>
Thu, 14 Nov 2024 18:07:17 +0000 (13:07 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
15 files changed:
queue-6.6/asoc-amd-yc-add-quirk-for-asus-vivobook-s15-m3502ra.patch [new file with mode: 0644]
queue-6.6/asoc-amd-yc-fix-non-functional-mic-on-asus-e1404fa.patch [new file with mode: 0644]
queue-6.6/asoc-fsl_micfil-add-sample-rate-constraint.patch [new file with mode: 0644]
queue-6.6/asoc-rt722-sdca-increase-clk_stop_timeout-to-fix-clo.patch [new file with mode: 0644]
queue-6.6/bpf-add-sk_is_inet-and-is_icsk-check-in-tls_sw_has_c.patch [new file with mode: 0644]
queue-6.6/bpf-check-validity-of-link-type-in-bpf_link_show_fdi.patch [new file with mode: 0644]
queue-6.6/bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch [new file with mode: 0644]
queue-6.6/fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch [new file with mode: 0644]
queue-6.6/hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch [new file with mode: 0644]
queue-6.6/hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch [new file with mode: 0644]
queue-6.6/loongarch-use-exception-return-address-to-comment-er.patch [new file with mode: 0644]
queue-6.6/net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch [new file with mode: 0644]
queue-6.6/riscv-kvm-use-raw_spinlock-for-critical-section-in-i.patch [new file with mode: 0644]
queue-6.6/series
queue-6.6/vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch [new file with mode: 0644]

diff --git a/queue-6.6/asoc-amd-yc-add-quirk-for-asus-vivobook-s15-m3502ra.patch b/queue-6.6/asoc-amd-yc-add-quirk-for-asus-vivobook-s15-m3502ra.patch
new file mode 100644 (file)
index 0000000..6bcf8a9
--- /dev/null
@@ -0,0 +1,42 @@
+From c87d5a976d2e0e231c8969dbf387caed674e5e43 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 10 Oct 2024 15:32:11 +0200
+Subject: ASoC: amd: yc: Add quirk for ASUS Vivobook S15 M3502RA
+
+From: Christian Heusel <christian@heusel.eu>
+
+[ Upstream commit 182fff3a2aafe4e7f3717a0be9df2fe2ed1a77de ]
+
+As reported the builtin microphone doesn't work on the ASUS Vivobook
+model S15 OLED M3502RA. Therefore add a quirk for it to make it work.
+
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=219345
+Signed-off-by: Christian Heusel <christian@heusel.eu>
+Link: https://patch.msgid.link/20241010-bugzilla-219345-asus-vivobook-v1-1-3bb24834e2c3@heusel.eu
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/amd/yc/acp6x-mach.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c
+index e027bc1d35f4f..2d766d988eb2e 100644
+--- a/sound/soc/amd/yc/acp6x-mach.c
++++ b/sound/soc/amd/yc/acp6x-mach.c
+@@ -339,6 +339,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
+                       DMI_MATCH(DMI_PRODUCT_NAME, "M7600RE"),
+               }
+       },
++      {
++              .driver_data = &acp6x_card,
++              .matches = {
++                      DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "M3502RA"),
++              }
++      },
+       {
+               .driver_data = &acp6x_card,
+               .matches = {
+-- 
+2.43.0
+
diff --git a/queue-6.6/asoc-amd-yc-fix-non-functional-mic-on-asus-e1404fa.patch b/queue-6.6/asoc-amd-yc-fix-non-functional-mic-on-asus-e1404fa.patch
new file mode 100644 (file)
index 0000000..e3839f2
--- /dev/null
@@ -0,0 +1,40 @@
+From 8c25057f487fa21442ee5def8ee2eb0d2f1355fc Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 16 Oct 2024 10:40:37 +0700
+Subject: ASoC: amd: yc: Fix non-functional mic on ASUS E1404FA
+
+From: Ilya Dudikov <ilyadud@mail.ru>
+
+[ Upstream commit b0867999e3282378a0b26a7ad200233044d31eca ]
+
+ASUS Vivobook E1404FA needs a quirks-table entry for the internal microphone to function properly.
+
+Signed-off-by: Ilya Dudikov <ilyadud@mail.ru>
+Link: https://patch.msgid.link/20241016034038.13481-1-ilyadud25@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/amd/yc/acp6x-mach.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c
+index 2d766d988eb2e..08f823cd88699 100644
+--- a/sound/soc/amd/yc/acp6x-mach.c
++++ b/sound/soc/amd/yc/acp6x-mach.c
+@@ -325,6 +325,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
+                       DMI_MATCH(DMI_PRODUCT_NAME, "M6500RC"),
+               }
+       },
++      {
++              .driver_data = &acp6x_card,
++              .matches = {
++                      DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "E1404FA"),
++              }
++      },
+       {
+               .driver_data = &acp6x_card,
+               .matches = {
+-- 
+2.43.0
+
diff --git a/queue-6.6/asoc-fsl_micfil-add-sample-rate-constraint.patch b/queue-6.6/asoc-fsl_micfil-add-sample-rate-constraint.patch
new file mode 100644 (file)
index 0000000..1b9b8d1
--- /dev/null
@@ -0,0 +1,108 @@
+From 2e3d91f55349c1c9d4a6bf25fc55cce13ae705ff Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 14 Oct 2024 13:38:33 +0800
+Subject: ASoC: fsl_micfil: Add sample rate constraint
+
+From: Shengjiu Wang <shengjiu.wang@nxp.com>
+
+[ Upstream commit b9a8ecf81066e01e8a3de35517481bc5aa0439e5 ]
+
+On some platforms, for example i.MX93, there is only one
+audio PLL source, so some sample rate can't be supported.
+If the PLL source is used for 8kHz series rates, then 11kHz
+series rates can't be supported.
+
+So add constraints according to the frequency of available
+clock sources, then alsa-lib will help to convert the
+unsupported rate for the driver.
+
+Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
+Link: https://patch.msgid.link/1728884313-6778-1-git-send-email-shengjiu.wang@nxp.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/fsl/fsl_micfil.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
+
+diff --git a/sound/soc/fsl/fsl_micfil.c b/sound/soc/fsl/fsl_micfil.c
+index 9407179af5d57..8478a4ac59f9d 100644
+--- a/sound/soc/fsl/fsl_micfil.c
++++ b/sound/soc/fsl/fsl_micfil.c
+@@ -28,6 +28,13 @@
+ #define MICFIL_OSR_DEFAULT    16
++#define MICFIL_NUM_RATES      7
++#define MICFIL_CLK_SRC_NUM    3
++/* clock source ids */
++#define MICFIL_AUDIO_PLL1     0
++#define MICFIL_AUDIO_PLL2     1
++#define MICFIL_CLK_EXT3               2
++
+ enum quality {
+       QUALITY_HIGH,
+       QUALITY_MEDIUM,
+@@ -45,9 +52,12 @@ struct fsl_micfil {
+       struct clk *mclk;
+       struct clk *pll8k_clk;
+       struct clk *pll11k_clk;
++      struct clk *clk_src[MICFIL_CLK_SRC_NUM];
+       struct snd_dmaengine_dai_dma_data dma_params_rx;
+       struct sdma_peripheral_config sdmacfg;
+       struct snd_soc_card *card;
++      struct snd_pcm_hw_constraint_list constraint_rates;
++      unsigned int constraint_rates_list[MICFIL_NUM_RATES];
+       unsigned int dataline;
+       char name[32];
+       int irq[MICFIL_IRQ_LINES];
+@@ -475,12 +485,34 @@ static int fsl_micfil_startup(struct snd_pcm_substream *substream,
+                             struct snd_soc_dai *dai)
+ {
+       struct fsl_micfil *micfil = snd_soc_dai_get_drvdata(dai);
++      unsigned int rates[MICFIL_NUM_RATES] = {8000, 11025, 16000, 22050, 32000, 44100, 48000};
++      int i, j, k = 0;
++      u64 clk_rate;
+       if (!micfil) {
+               dev_err(dai->dev, "micfil dai priv_data not set\n");
+               return -EINVAL;
+       }
++      micfil->constraint_rates.list = micfil->constraint_rates_list;
++      micfil->constraint_rates.count = 0;
++
++      for (j = 0; j < MICFIL_NUM_RATES; j++) {
++              for (i = 0; i < MICFIL_CLK_SRC_NUM; i++) {
++                      clk_rate = clk_get_rate(micfil->clk_src[i]);
++                      if (clk_rate != 0 && do_div(clk_rate, rates[j]) == 0) {
++                              micfil->constraint_rates_list[k++] = rates[j];
++                              micfil->constraint_rates.count++;
++                              break;
++                      }
++              }
++      }
++
++      if (micfil->constraint_rates.count > 0)
++              snd_pcm_hw_constraint_list(substream->runtime, 0,
++                                         SNDRV_PCM_HW_PARAM_RATE,
++                                         &micfil->constraint_rates);
++
+       return 0;
+ }
+@@ -1165,6 +1197,12 @@ static int fsl_micfil_probe(struct platform_device *pdev)
+       fsl_asoc_get_pll_clocks(&pdev->dev, &micfil->pll8k_clk,
+                               &micfil->pll11k_clk);
++      micfil->clk_src[MICFIL_AUDIO_PLL1] = micfil->pll8k_clk;
++      micfil->clk_src[MICFIL_AUDIO_PLL2] = micfil->pll11k_clk;
++      micfil->clk_src[MICFIL_CLK_EXT3] = devm_clk_get(&pdev->dev, "clkext3");
++      if (IS_ERR(micfil->clk_src[MICFIL_CLK_EXT3]))
++              micfil->clk_src[MICFIL_CLK_EXT3] = NULL;
++
+       /* init regmap */
+       regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
+       if (IS_ERR(regs))
+-- 
+2.43.0
+
diff --git a/queue-6.6/asoc-rt722-sdca-increase-clk_stop_timeout-to-fix-clo.patch b/queue-6.6/asoc-rt722-sdca-increase-clk_stop_timeout-to-fix-clo.patch
new file mode 100644 (file)
index 0000000..71474f8
--- /dev/null
@@ -0,0 +1,35 @@
+From 2449d24cebaf25daf967bfd131464ebeed786900 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 21 Oct 2024 06:15:44 +0000
+Subject: ASoC: rt722-sdca: increase clk_stop_timeout to fix clock stop issue
+
+From: Jack Yu <jack.yu@realtek.com>
+
+[ Upstream commit 038fa6ddf5d22694f61ff7a7a53c8887c6b08c45 ]
+
+clk_stop_timeout should be increased to 900ms to fix clock stop issue.
+
+Signed-off-by: Jack Yu <jack.yu@realtek.com>
+Link: https://patch.msgid.link/cd26275d9fc54374a18dc016755cb72d@realtek.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/rt722-sdca-sdw.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/rt722-sdca-sdw.c b/sound/soc/codecs/rt722-sdca-sdw.c
+index 32578a212642e..91314327d9eee 100644
+--- a/sound/soc/codecs/rt722-sdca-sdw.c
++++ b/sound/soc/codecs/rt722-sdca-sdw.c
+@@ -253,7 +253,7 @@ static int rt722_sdca_read_prop(struct sdw_slave *slave)
+       }
+       /* set the timeout values */
+-      prop->clk_stop_timeout = 200;
++      prop->clk_stop_timeout = 900;
+       /* wake-up event */
+       prop->wake_capable = 1;
+-- 
+2.43.0
+
diff --git a/queue-6.6/bpf-add-sk_is_inet-and-is_icsk-check-in-tls_sw_has_c.patch b/queue-6.6/bpf-add-sk_is_inet-and-is_icsk-check-in-tls_sw_has_c.patch
new file mode 100644 (file)
index 0000000..b55d65d
--- /dev/null
@@ -0,0 +1,88 @@
+From 9352348efdaa0519ed50674180f15563f5dfbacc Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 6 Nov 2024 00:37:42 +0000
+Subject: bpf: Add sk_is_inet and IS_ICSK check in tls_sw_has_ctx_tx/rx
+
+From: Zijian Zhang <zijianzhang@bytedance.com>
+
+[ Upstream commit 44d0469f79bd3d0b3433732877358df7dc6b17b1 ]
+
+As the introduction of the support for vsock and unix sockets in sockmap,
+tls_sw_has_ctx_tx/rx cannot presume the socket passed in must be IS_ICSK.
+vsock and af_unix sockets have vsock_sock and unix_sock instead of
+inet_connection_sock. For these sockets, tls_get_ctx may return an invalid
+pointer and cause page fault in function tls_sw_ctx_rx.
+
+BUG: unable to handle page fault for address: 0000000000040030
+Workqueue: vsock-loopback vsock_loopback_work
+RIP: 0010:sk_psock_strp_data_ready+0x23/0x60
+Call Trace:
+ ? __die+0x81/0xc3
+ ? no_context+0x194/0x350
+ ? do_page_fault+0x30/0x110
+ ? async_page_fault+0x3e/0x50
+ ? sk_psock_strp_data_ready+0x23/0x60
+ virtio_transport_recv_pkt+0x750/0x800
+ ? update_load_avg+0x7e/0x620
+ vsock_loopback_work+0xd0/0x100
+ process_one_work+0x1a7/0x360
+ worker_thread+0x30/0x390
+ ? create_worker+0x1a0/0x1a0
+ kthread+0x112/0x130
+ ? __kthread_cancel_work+0x40/0x40
+ ret_from_fork+0x1f/0x40
+
+v2:
+  - Add IS_ICSK check
+v3:
+  - Update the commits in Fixes
+
+Fixes: 634f1a7110b4 ("vsock: support sockmap")
+Fixes: 94531cfcbe79 ("af_unix: Add unix_stream_proto for sockmap")
+Signed-off-by: Zijian Zhang <zijianzhang@bytedance.com>
+Acked-by: Stanislav Fomichev <sdf@fomichev.me>
+Acked-by: Jakub Kicinski <kuba@kernel.org>
+Reviewed-by: Cong Wang <cong.wang@bytedance.com>
+Acked-by: Stefano Garzarella <sgarzare@redhat.com>
+Link: https://lore.kernel.org/r/20241106003742.399240-1-zijianzhang@bytedance.com
+Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ include/net/tls.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/include/net/tls.h b/include/net/tls.h
+index 2ad28545b15f0..6c642ea180504 100644
+--- a/include/net/tls.h
++++ b/include/net/tls.h
+@@ -395,8 +395,12 @@ tls_offload_ctx_tx(const struct tls_context *tls_ctx)
+ static inline bool tls_sw_has_ctx_tx(const struct sock *sk)
+ {
+-      struct tls_context *ctx = tls_get_ctx(sk);
++      struct tls_context *ctx;
++
++      if (!sk_is_inet(sk) || !inet_test_bit(IS_ICSK, sk))
++              return false;
++      ctx = tls_get_ctx(sk);
+       if (!ctx)
+               return false;
+       return !!tls_sw_ctx_tx(ctx);
+@@ -404,8 +408,12 @@ static inline bool tls_sw_has_ctx_tx(const struct sock *sk)
+ static inline bool tls_sw_has_ctx_rx(const struct sock *sk)
+ {
+-      struct tls_context *ctx = tls_get_ctx(sk);
++      struct tls_context *ctx;
++
++      if (!sk_is_inet(sk) || !inet_test_bit(IS_ICSK, sk))
++              return false;
++      ctx = tls_get_ctx(sk);
+       if (!ctx)
+               return false;
+       return !!tls_sw_ctx_rx(ctx);
+-- 
+2.43.0
+
diff --git a/queue-6.6/bpf-check-validity-of-link-type-in-bpf_link_show_fdi.patch b/queue-6.6/bpf-check-validity-of-link-type-in-bpf_link_show_fdi.patch
new file mode 100644 (file)
index 0000000..bf8d089
--- /dev/null
@@ -0,0 +1,54 @@
+From 454ee297b0d463cff58b3c4935ae20c35c44e6c7 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 24 Oct 2024 09:35:58 +0800
+Subject: bpf: Check validity of link->type in bpf_link_show_fdinfo()
+
+From: Hou Tao <houtao1@huawei.com>
+
+[ Upstream commit 8421d4c8762bd022cb491f2f0f7019ef51b4f0a7 ]
+
+If a newly-added link type doesn't invoke BPF_LINK_TYPE(), accessing
+bpf_link_type_strs[link->type] may result in an out-of-bounds access.
+
+To spot such missed invocations early in the future, checking the
+validity of link->type in bpf_link_show_fdinfo() and emitting a warning
+when such invocations are missed.
+
+Signed-off-by: Hou Tao <houtao1@huawei.com>
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Link: https://lore.kernel.org/bpf/20241024013558.1135167-3-houtao@huaweicloud.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ kernel/bpf/syscall.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
+index 8a1cadc1ff9dd..252aed82d45ea 100644
+--- a/kernel/bpf/syscall.c
++++ b/kernel/bpf/syscall.c
+@@ -2963,13 +2963,17 @@ static void bpf_link_show_fdinfo(struct seq_file *m, struct file *filp)
+ {
+       const struct bpf_link *link = filp->private_data;
+       const struct bpf_prog *prog = link->prog;
++      enum bpf_link_type type = link->type;
+       char prog_tag[sizeof(prog->tag) * 2 + 1] = { };
+-      seq_printf(m,
+-                 "link_type:\t%s\n"
+-                 "link_id:\t%u\n",
+-                 bpf_link_type_strs[link->type],
+-                 link->id);
++      if (type < ARRAY_SIZE(bpf_link_type_strs) && bpf_link_type_strs[type]) {
++              seq_printf(m, "link_type:\t%s\n", bpf_link_type_strs[type]);
++      } else {
++              WARN_ONCE(1, "missing BPF_LINK_TYPE(...) for link type %u\n", type);
++              seq_printf(m, "link_type:\t<%u>\n", type);
++      }
++      seq_printf(m, "link_id:\t%u\n", link->id);
++
+       if (prog) {
+               bin2hex(prog_tag, prog->tag, sizeof(prog->tag));
+               seq_printf(m,
+-- 
+2.43.0
+
diff --git a/queue-6.6/bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch b/queue-6.6/bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch
new file mode 100644 (file)
index 0000000..620aaef
--- /dev/null
@@ -0,0 +1,50 @@
+From f5982d984430fa43a5f8b99f2863abd85c993543 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 8 Nov 2024 08:18:52 +0000
+Subject: bpf: Fix mismatched RCU unlock flavour in bpf_out_neigh_v6
+
+From: Jiawei Ye <jiawei.ye@foxmail.com>
+
+[ Upstream commit fb86c42a2a5d44e849ddfbc98b8d2f4f40d36ee3 ]
+
+In the bpf_out_neigh_v6 function, rcu_read_lock() is used to begin an RCU
+read-side critical section. However, when unlocking, one branch
+incorrectly uses a different RCU unlock flavour rcu_read_unlock_bh()
+instead of rcu_read_unlock(). This mismatch in RCU locking flavours can
+lead to unexpected behavior and potential concurrency issues.
+
+This possible bug was identified using a static analysis tool developed
+by myself, specifically designed to detect RCU-related issues.
+
+This patch corrects the mismatched unlock flavour by replacing the
+incorrect rcu_read_unlock_bh() with the appropriate rcu_read_unlock(),
+ensuring that the RCU critical section is properly exited. This change
+prevents potential synchronization issues and aligns with proper RCU
+usage patterns.
+
+Fixes: 09eed1192cec ("neighbour: switch to standard rcu, instead of rcu_bh")
+Signed-off-by: Jiawei Ye <jiawei.ye@foxmail.com>
+Acked-by: Yonghong Song <yonghong.song@linux.dev>
+Link: https://lore.kernel.org/r/tencent_CFD3D1C3D68B45EA9F52D8EC76D2C4134306@qq.com
+Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/core/filter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/core/filter.c b/net/core/filter.c
+index a2467a7c01f9e..f9d05eff80b17 100644
+--- a/net/core/filter.c
++++ b/net/core/filter.c
+@@ -2233,7 +2233,7 @@ static int bpf_out_neigh_v6(struct net *net, struct sk_buff *skb,
+               rcu_read_unlock();
+               return ret;
+       }
+-      rcu_read_unlock_bh();
++      rcu_read_unlock();
+       if (dst)
+               IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES);
+ out_drop:
+-- 
+2.43.0
+
diff --git a/queue-6.6/fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch b/queue-6.6/fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch
new file mode 100644 (file)
index 0000000..fb7e419
--- /dev/null
@@ -0,0 +1,49 @@
+From 232510380b7132d645756369d5db2b5cbeb9022c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 17 Oct 2024 14:05:51 +0200
+Subject: fs: Fix uninitialized value issue in from_kuid and from_kgid
+
+From: Alessandro Zanni <alessandro.zanni87@gmail.com>
+
+[ Upstream commit 15f34347481648a567db67fb473c23befb796af5 ]
+
+ocfs2_setattr() uses attr->ia_mode, attr->ia_uid and attr->ia_gid in
+a trace point even though ATTR_MODE, ATTR_UID and ATTR_GID aren't set.
+
+Initialize all fields of newattrs to avoid uninitialized variables, by
+checking if ATTR_MODE, ATTR_UID, ATTR_GID are initialized, otherwise 0.
+
+Reported-by: syzbot+6c55f725d1bdc8c52058@syzkaller.appspotmail.com
+Closes: https://syzkaller.appspot.com/bug?extid=6c55f725d1bdc8c52058
+Signed-off-by: Alessandro Zanni <alessandro.zanni87@gmail.com>
+Link: https://lore.kernel.org/r/20241017120553.55331-1-alessandro.zanni87@gmail.com
+Reviewed-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Christian Brauner <brauner@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/ocfs2/file.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
+index aa39d5d2d94f1..e4acb795d1190 100644
+--- a/fs/ocfs2/file.c
++++ b/fs/ocfs2/file.c
+@@ -1128,9 +1128,12 @@ int ocfs2_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
+       trace_ocfs2_setattr(inode, dentry,
+                           (unsigned long long)OCFS2_I(inode)->ip_blkno,
+                           dentry->d_name.len, dentry->d_name.name,
+-                          attr->ia_valid, attr->ia_mode,
+-                          from_kuid(&init_user_ns, attr->ia_uid),
+-                          from_kgid(&init_user_ns, attr->ia_gid));
++                          attr->ia_valid,
++                              attr->ia_valid & ATTR_MODE ? attr->ia_mode : 0,
++                              attr->ia_valid & ATTR_UID ?
++                                      from_kuid(&init_user_ns, attr->ia_uid) : 0,
++                              attr->ia_valid & ATTR_GID ?
++                                      from_kgid(&init_user_ns, attr->ia_gid) : 0);
+       /* ensuring we don't even attempt to truncate a symlink */
+       if (S_ISLNK(inode->i_mode))
+-- 
+2.43.0
+
diff --git a/queue-6.6/hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch b/queue-6.6/hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch
new file mode 100644 (file)
index 0000000..9c4e67d
--- /dev/null
@@ -0,0 +1,88 @@
+From 51e3b53982337706f2c8d22192d86b6302a9d190 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 10 Oct 2024 11:45:12 +0200
+Subject: HID: lenovo: Add support for Thinkpad X1 Tablet Gen 3 keyboard
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit 51268879eb2bfc563a91cdce69362d9dbf707e7e ]
+
+The Thinkpad X1 Tablet Gen 3 keyboard has the same Lenovo specific quirks
+as the original  Thinkpad X1 Tablet keyboard.
+
+Add the PID for the "Thinkpad X1 Tablet Gen 3 keyboard" to the hid-lenovo
+driver to fix the FnLock, Mute and media buttons not working.
+
+Suggested-by: Izhar Firdaus <izhar@fedoraproject.org>
+Closes https://bugzilla.redhat.com/show_bug.cgi?id=2315395
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/hid-lenovo.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c
+index f86c1ea83a037..a4062f617ba20 100644
+--- a/drivers/hid/hid-lenovo.c
++++ b/drivers/hid/hid-lenovo.c
+@@ -473,6 +473,7 @@ static int lenovo_input_mapping(struct hid_device *hdev,
+               return lenovo_input_mapping_tp10_ultrabook_kbd(hdev, hi, field,
+                                                              usage, bit, max);
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               return lenovo_input_mapping_x1_tab_kbd(hdev, hi, field, usage, bit, max);
+       default:
+               return 0;
+@@ -583,6 +584,7 @@ static ssize_t attr_fn_lock_store(struct device *dev,
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               ret = lenovo_led_set_tp10ubkbd(hdev, TP10UBKBD_FN_LOCK_LED, value);
+               if (ret)
+                       return ret;
+@@ -777,6 +779,7 @@ static int lenovo_event(struct hid_device *hdev, struct hid_field *field,
+               return lenovo_event_cptkbd(hdev, field, usage, value);
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               return lenovo_event_tp10ubkbd(hdev, field, usage, value);
+       default:
+               return 0;
+@@ -1059,6 +1062,7 @@ static int lenovo_led_brightness_set(struct led_classdev *led_cdev,
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               ret = lenovo_led_set_tp10ubkbd(hdev, tp10ubkbd_led[led_nr], value);
+               break;
+       }
+@@ -1289,6 +1293,7 @@ static int lenovo_probe(struct hid_device *hdev,
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               ret = lenovo_probe_tp10ubkbd(hdev);
+               break;
+       default:
+@@ -1375,6 +1380,7 @@ static void lenovo_remove(struct hid_device *hdev)
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               lenovo_remove_tp10ubkbd(hdev);
+               break;
+       }
+@@ -1424,6 +1430,8 @@ static const struct hid_device_id lenovo_devices[] = {
+        */
+       { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+                    USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB) },
++      { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
++                   USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB3) },
+       { }
+ };
+-- 
+2.43.0
+
diff --git a/queue-6.6/hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch b/queue-6.6/hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch
new file mode 100644 (file)
index 0000000..efb465c
--- /dev/null
@@ -0,0 +1,58 @@
+From dc79a766aa6e5972f763cc185bd5084a52c6b80c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 4 Oct 2024 10:24:29 -0700
+Subject: HID: multitouch: Add quirk for Logitech Bolt receiver w/ Casa
+ touchpad
+
+From: Kenneth Albanowski <kenalba@chromium.org>
+
+[ Upstream commit 526748b925185e95f1415900ee13c2469d4b64cc ]
+
+The Logitech Casa Touchpad does not reliably send touch release signals
+when communicating through the Logitech Bolt wireless-to-USB receiver.
+
+Adjusting the device class to add MT_QUIRK_NOT_SEEN_MEANS_UP to make
+sure that no touches become stuck, MT_QUIRK_FORCE_MULTI_INPUT is not
+needed, but harmless.
+
+Linux does not have information on which devices are connected to the
+Bolt receiver, so we have to enable this for the entire device.
+
+Signed-off-by: Kenneth Albanowski <kenalba@chromium.org>
+Signed-off-by: Jiri Kosina <jkosina@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/hid-ids.h        | 1 +
+ drivers/hid/hid-multitouch.c | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
+index d4f6066dbbc59..1a05e22685895 100644
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -868,6 +868,7 @@
+ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1     0xc539
+ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_1   0xc53f
+ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_POWERPLAY        0xc53a
++#define USB_DEVICE_ID_LOGITECH_BOLT_RECEIVER  0xc548
+ #define USB_DEVICE_ID_SPACETRAVELLER  0xc623
+ #define USB_DEVICE_ID_SPACENAVIGATOR  0xc626
+ #define USB_DEVICE_ID_DINOVO_DESKTOP  0xc704
+diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
+index c2d79b2d6cdd2..bf9cad7112592 100644
+--- a/drivers/hid/hid-multitouch.c
++++ b/drivers/hid/hid-multitouch.c
+@@ -2140,6 +2140,10 @@ static const struct hid_device_id mt_devices[] = {
+               HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_MULTITOUCH_WIN_8,
+                       USB_VENDOR_ID_LOGITECH,
+                       USB_DEVICE_ID_LOGITECH_CASA_TOUCHPAD) },
++      { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU,
++              HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,
++                      USB_VENDOR_ID_LOGITECH,
++                      USB_DEVICE_ID_LOGITECH_BOLT_RECEIVER) },
+       /* MosArt panels */
+       { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
+-- 
+2.43.0
+
diff --git a/queue-6.6/loongarch-use-exception-return-address-to-comment-er.patch b/queue-6.6/loongarch-use-exception-return-address-to-comment-er.patch
new file mode 100644 (file)
index 0000000..c08182e
--- /dev/null
@@ -0,0 +1,36 @@
+From 3fc172014209056bf73aca7f0f8fbe9d0363e2c1 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 21 Oct 2024 22:11:18 +0800
+Subject: LoongArch: Use "Exception return address" to comment ERA
+
+From: Yanteng Si <siyanteng@cqsoftware.com.cn>
+
+[ Upstream commit b69269c870ece1bc7d2e3e39ca76f4602f2cb0dd ]
+
+The information contained in the comment for LOONGARCH_CSR_ERA is even
+less informative than the macro itself, which can cause confusion for
+junior developers. Let's use the full English term.
+
+Signed-off-by: Yanteng Si <siyanteng@cqsoftware.com.cn>
+Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/loongarch/include/asm/loongarch.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h
+index 33531d432b492..23232c7bdb9ff 100644
+--- a/arch/loongarch/include/asm/loongarch.h
++++ b/arch/loongarch/include/asm/loongarch.h
+@@ -242,7 +242,7 @@
+ #define  CSR_ESTAT_IS_WIDTH           14
+ #define  CSR_ESTAT_IS                 (_ULCAST_(0x3fff) << CSR_ESTAT_IS_SHIFT)
+-#define LOONGARCH_CSR_ERA             0x6     /* ERA */
++#define LOONGARCH_CSR_ERA             0x6     /* Exception return address */
+ #define LOONGARCH_CSR_BADV            0x7     /* Bad virtual address */
+-- 
+2.43.0
+
diff --git a/queue-6.6/net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch b/queue-6.6/net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch
new file mode 100644 (file)
index 0000000..0a0d72b
--- /dev/null
@@ -0,0 +1,57 @@
+From 5fdf1b8e2541d2bbee138d88f48fd65cc94804b5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 18 Oct 2024 22:52:55 +0200
+Subject: net: usb: qmi_wwan: add Fibocom FG132 0x0112 composition
+
+From: Reinhard Speyerer <rspmn@arcor.de>
+
+[ Upstream commit 64761c980cbf71fb7a532a8c7299907ea972a88c ]
+
+Add Fibocom FG132 0x0112 composition:
+
+T:  Bus=03 Lev=02 Prnt=06 Port=01 Cnt=02 Dev#= 10 Spd=12   MxCh= 0
+D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
+P:  Vendor=2cb7 ProdID=0112 Rev= 5.15
+S:  Manufacturer=Fibocom Wireless Inc.
+S:  Product=Fibocom Module
+S:  SerialNumber=xxxxxxxx
+C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
+I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
+E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
+E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
+E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
+E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
+E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
+E:  Ad=86(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+
+Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
+
+Link: https://patch.msgid.link/ZxLKp5YZDy-OM0-e@arcor.de
+Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/usb/qmi_wwan.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
+index 92c1500fa7c44..2cf4324a12fd1 100644
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -1432,6 +1432,7 @@ static const struct usb_device_id products[] = {
+       {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)},    /* Quectel BG96 */
+       {QMI_QUIRK_SET_DTR(0x2c7c, 0x030e, 4)}, /* Quectel EM05GV2 */
+       {QMI_QUIRK_SET_DTR(0x2cb7, 0x0104, 4)}, /* Fibocom NL678 series */
++      {QMI_QUIRK_SET_DTR(0x2cb7, 0x0112, 0)}, /* Fibocom FG132 */
+       {QMI_FIXED_INTF(0x0489, 0xe0b4, 0)},    /* Foxconn T77W968 LTE */
+       {QMI_FIXED_INTF(0x0489, 0xe0b5, 0)},    /* Foxconn T77W968 LTE with eSIM support*/
+       {QMI_FIXED_INTF(0x2692, 0x9025, 4)},    /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
+-- 
+2.43.0
+
diff --git a/queue-6.6/riscv-kvm-use-raw_spinlock-for-critical-section-in-i.patch b/queue-6.6/riscv-kvm-use-raw_spinlock-for-critical-section-in-i.patch
new file mode 100644 (file)
index 0000000..cec46ca
--- /dev/null
@@ -0,0 +1,67 @@
+From 482b6e9cf0e19cd21d0deffb31e615fef5077899 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 20 Sep 2024 00:01:26 +0800
+Subject: RISCV: KVM: use raw_spinlock for critical section in imsic
+
+From: Cyan Yang <cyan.yang@sifive.com>
+
+[ Upstream commit 3ec4350d4efb5ccb6bd0e11d9cf7f2be4f47297d ]
+
+For the external interrupt updating procedure in imsic, there was a
+spinlock to protect it already. But since it should not be preempted in
+any cases, we should turn to use raw_spinlock to prevent any preemption
+in case PREEMPT_RT was enabled.
+
+Signed-off-by: Cyan Yang <cyan.yang@sifive.com>
+Reviewed-by: Yong-Xuan Wang <yongxuan.wang@sifive.com>
+Reviewed-by: Anup Patel <anup@brainfault.org>
+Message-ID: <20240919160126.44487-1-cyan.yang@sifive.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/riscv/kvm/aia_imsic.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/riscv/kvm/aia_imsic.c b/arch/riscv/kvm/aia_imsic.c
+index e808723a85f1b..c1585444f856e 100644
+--- a/arch/riscv/kvm/aia_imsic.c
++++ b/arch/riscv/kvm/aia_imsic.c
+@@ -55,7 +55,7 @@ struct imsic {
+       /* IMSIC SW-file */
+       struct imsic_mrif *swfile;
+       phys_addr_t swfile_pa;
+-      spinlock_t swfile_extirq_lock;
++      raw_spinlock_t swfile_extirq_lock;
+ };
+ #define imsic_vs_csr_read(__c)                        \
+@@ -622,7 +622,7 @@ static void imsic_swfile_extirq_update(struct kvm_vcpu *vcpu)
+        * interruptions between reading topei and updating pending status.
+        */
+-      spin_lock_irqsave(&imsic->swfile_extirq_lock, flags);
++      raw_spin_lock_irqsave(&imsic->swfile_extirq_lock, flags);
+       if (imsic_mrif_atomic_read(mrif, &mrif->eidelivery) &&
+           imsic_mrif_topei(mrif, imsic->nr_eix, imsic->nr_msis))
+@@ -630,7 +630,7 @@ static void imsic_swfile_extirq_update(struct kvm_vcpu *vcpu)
+       else
+               kvm_riscv_vcpu_unset_interrupt(vcpu, IRQ_VS_EXT);
+-      spin_unlock_irqrestore(&imsic->swfile_extirq_lock, flags);
++      raw_spin_unlock_irqrestore(&imsic->swfile_extirq_lock, flags);
+ }
+ static void imsic_swfile_read(struct kvm_vcpu *vcpu, bool clear,
+@@ -1051,7 +1051,7 @@ int kvm_riscv_vcpu_aia_imsic_init(struct kvm_vcpu *vcpu)
+       }
+       imsic->swfile = page_to_virt(swfile_page);
+       imsic->swfile_pa = page_to_phys(swfile_page);
+-      spin_lock_init(&imsic->swfile_extirq_lock);
++      raw_spin_lock_init(&imsic->swfile_extirq_lock);
+       /* Setup IO device */
+       kvm_iodevice_init(&imsic->iodev, &imsic_iodoev_ops);
+-- 
+2.43.0
+
index ee17807ba0ebd9f07f8a01b84368d1c502cd9447..5beb446c9c424a894f26f3204d0c675bdef68821 100644 (file)
@@ -23,3 +23,17 @@ nvme-loop-flush-off-pending-i-o-while-shutting-down-.patch
 nvme-make-keep-alive-synchronous-operation.patch
 smb-client-fix-use-after-free-of-network-namespace.patch
 nvme-host-fix-rcu-list-traversal-to-use-srcu-primiti.patch
+vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch
+bpf-add-sk_is_inet-and-is_icsk-check-in-tls_sw_has_c.patch
+bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch
+asoc-amd-yc-add-quirk-for-asus-vivobook-s15-m3502ra.patch
+asoc-amd-yc-fix-non-functional-mic-on-asus-e1404fa.patch
+fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch
+hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch
+hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch
+riscv-kvm-use-raw_spinlock-for-critical-section-in-i.patch
+asoc-rt722-sdca-increase-clk_stop_timeout-to-fix-clo.patch
+loongarch-use-exception-return-address-to-comment-er.patch
+asoc-fsl_micfil-add-sample-rate-constraint.patch
+net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch
+bpf-check-validity-of-link-type-in-bpf_link_show_fdi.patch
diff --git a/queue-6.6/vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch b/queue-6.6/vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch
new file mode 100644 (file)
index 0000000..0fd983c
--- /dev/null
@@ -0,0 +1,41 @@
+From 4b02f63b0546175336d79ca60bf0a72ad5fc27da Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 17 Oct 2024 09:38:12 +0800
+Subject: vDPA/ifcvf: Fix pci_read_config_byte() return code handling
+
+From: Yuan Can <yuancan@huawei.com>
+
+[ Upstream commit 7f8825b2a78ac392d3fbb3a2e65e56d9e39d75e9 ]
+
+ifcvf_init_hw() uses pci_read_config_byte() that returns
+PCIBIOS_* codes. The error handling, however, assumes the codes are
+normal errnos because it checks for < 0.
+Convert the error check to plain non-zero check.
+
+Fixes: 5a2414bc454e ("virtio: Intel IFC VF driver for VDPA")
+Signed-off-by: Yuan Can <yuancan@huawei.com>
+Message-Id: <20241017013812.129952-1-yuancan@huawei.com>
+Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
+Acked-by: Jason Wang <jasowang@redhat.com>
+Acked-by: Zhu Lingshan <lingshan.zhu@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/vdpa/ifcvf/ifcvf_base.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/vdpa/ifcvf/ifcvf_base.c b/drivers/vdpa/ifcvf/ifcvf_base.c
+index 060f837a4f9f7..3b09476e007c8 100644
+--- a/drivers/vdpa/ifcvf/ifcvf_base.c
++++ b/drivers/vdpa/ifcvf/ifcvf_base.c
+@@ -109,7 +109,7 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
+       u32 i;
+       ret = pci_read_config_byte(pdev, PCI_CAPABILITY_LIST, &pos);
+-      if (ret < 0) {
++      if (ret) {
+               IFCVF_ERR(pdev, "Failed to read PCI capability list\n");
+               return -EIO;
+       }
+-- 
+2.43.0
+