]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.4
authorSasha Levin <sashal@kernel.org>
Sun, 30 Jun 2024 02:22:24 +0000 (22:22 -0400)
committerSasha Levin <sashal@kernel.org>
Sun, 30 Jun 2024 02:22:24 +0000 (22:22 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.4/alsa-emux-improve-patch-ioctl-data-validation.patch [new file with mode: 0644]
queue-5.4/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch [new file with mode: 0644]
queue-5.4/gpio-davinci-validate-the-obtained-number-of-irqs.patch [new file with mode: 0644]
queue-5.4/media-dvbdev-initialize-sbuf.patch [new file with mode: 0644]
queue-5.4/mtd-partitions-redboot-added-conversion-of-operands-.patch [new file with mode: 0644]
queue-5.4/net-dpaa2-avoid-explicit-cpumask-var-allocation-on-s.patch [new file with mode: 0644]
queue-5.4/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch [new file with mode: 0644]
queue-5.4/nvme-fixup-comment-for-nvme-rdma-provider-type.patch [new file with mode: 0644]
queue-5.4/series
queue-5.4/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch [new file with mode: 0644]

diff --git a/queue-5.4/alsa-emux-improve-patch-ioctl-data-validation.patch b/queue-5.4/alsa-emux-improve-patch-ioctl-data-validation.patch
new file mode 100644 (file)
index 0000000..5bdf75d
--- /dev/null
@@ -0,0 +1,81 @@
+From 4a4f966766de0631434703b5994c3963c1a41ed8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 6 Apr 2024 08:48:20 +0200
+Subject: ALSA: emux: improve patch ioctl data validation
+
+From: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
+
+[ Upstream commit 89b32ccb12ae67e630c6453d778ec30a592a212f ]
+
+In load_data(), make the validation of and skipping over the main info
+block match that in load_guspatch().
+
+In load_guspatch(), add checking that the specified patch length matches
+the actually supplied data, like load_data() already did.
+
+Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
+Message-ID: <20240406064830.1029573-8-oswald.buddenhagen@gmx.de>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/synth/emux/soundfont.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/sound/synth/emux/soundfont.c b/sound/synth/emux/soundfont.c
+index dcc6a925a03ec..a3c9804b3ef1c 100644
+--- a/sound/synth/emux/soundfont.c
++++ b/sound/synth/emux/soundfont.c
+@@ -697,7 +697,6 @@ load_data(struct snd_sf_list *sflist, const void __user *data, long count)
+       struct snd_soundfont *sf;
+       struct soundfont_sample_info sample_info;
+       struct snd_sf_sample *sp;
+-      long off;
+       /* patch must be opened */
+       if ((sf = sflist->currsf) == NULL)
+@@ -706,12 +705,16 @@ load_data(struct snd_sf_list *sflist, const void __user *data, long count)
+       if (is_special_type(sf->type))
+               return -EINVAL;
++      if (count < (long)sizeof(sample_info)) {
++              return -EINVAL;
++      }
+       if (copy_from_user(&sample_info, data, sizeof(sample_info)))
+               return -EFAULT;
++      data += sizeof(sample_info);
++      count -= sizeof(sample_info);
+-      off = sizeof(sample_info);
+-
+-      if (sample_info.size != (count-off)/2)
++      // SoundFont uses S16LE samples.
++      if (sample_info.size * 2 != count)
+               return -EINVAL;
+       /* Check for dup */
+@@ -738,7 +741,7 @@ load_data(struct snd_sf_list *sflist, const void __user *data, long count)
+               int  rc;
+               rc = sflist->callback.sample_new
+                       (sflist->callback.private_data, sp, sflist->memhdr,
+-                       data + off, count - off);
++                       data, count);
+               if (rc < 0) {
+                       sf_sample_delete(sflist, sf, sp);
+                       return rc;
+@@ -951,10 +954,12 @@ load_guspatch(struct snd_sf_list *sflist, const char __user *data,
+       }
+       if (copy_from_user(&patch, data, sizeof(patch)))
+               return -EFAULT;
+-      
+       count -= sizeof(patch);
+       data += sizeof(patch);
++      if ((patch.len << (patch.mode & WAVE_16_BITS ? 1 : 0)) != count)
++              return -EINVAL;
++
+       sf = newsf(sflist, SNDRV_SFNT_PAT_TYPE_GUS|SNDRV_SFNT_PAT_SHARED, NULL);
+       if (sf == NULL)
+               return -ENOMEM;
+-- 
+2.43.0
+
diff --git a/queue-5.4/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch b/queue-5.4/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch
new file mode 100644 (file)
index 0000000..1003127
--- /dev/null
@@ -0,0 +1,54 @@
+From 48d06bea74bb149d5d10461c0d24797576154b0d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 17 Mar 2024 17:48:39 +0200
+Subject: drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that
+ sleep
+
+From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+[ Upstream commit ee7860cd8b5763017f8dc785c2851fecb7a0c565 ]
+
+The ilitek-ili9881c controls the reset GPIO using the non-sleeping
+gpiod_set_value() function. This complains loudly when the GPIO
+controller needs to sleep. As the caller can sleep, use
+gpiod_set_value_cansleep() to fix the issue.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
+Link: https://lore.kernel.org/r/20240317154839.21260-1-laurent.pinchart@ideasonboard.com
+Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
+Link: https://patchwork.freedesktop.org/patch/msgid/20240317154839.21260-1-laurent.pinchart@ideasonboard.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+index e8789e460a169..58daabb480737 100644
+--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
++++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+@@ -307,10 +307,10 @@ static int ili9881c_prepare(struct drm_panel *panel)
+       msleep(5);
+       /* And reset it */
+-      gpiod_set_value(ctx->reset, 1);
++      gpiod_set_value_cansleep(ctx->reset, 1);
+       msleep(20);
+-      gpiod_set_value(ctx->reset, 0);
++      gpiod_set_value_cansleep(ctx->reset, 0);
+       msleep(20);
+       for (i = 0; i < ARRAY_SIZE(ili9881c_init); i++) {
+@@ -367,7 +367,7 @@ static int ili9881c_unprepare(struct drm_panel *panel)
+       mipi_dsi_dcs_enter_sleep_mode(ctx->dsi);
+       regulator_disable(ctx->power);
+-      gpiod_set_value(ctx->reset, 1);
++      gpiod_set_value_cansleep(ctx->reset, 1);
+       return 0;
+ }
+-- 
+2.43.0
+
diff --git a/queue-5.4/gpio-davinci-validate-the-obtained-number-of-irqs.patch b/queue-5.4/gpio-davinci-validate-the-obtained-number-of-irqs.patch
new file mode 100644 (file)
index 0000000..dd83de2
--- /dev/null
@@ -0,0 +1,47 @@
+From f26e126af5c4d96137d7e23f2d64166f10b092e5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 18 Jun 2024 17:43:44 +0300
+Subject: gpio: davinci: Validate the obtained number of IRQs
+
+From: Aleksandr Mishin <amishin@t-argos.ru>
+
+[ Upstream commit 7aa9b96e9a73e4ec1771492d0527bd5fc5ef9164 ]
+
+Value of pdata->gpio_unbanked is taken from Device Tree. In case of broken
+DT due to any error this value can be any. Without this value validation
+there can be out of chips->irqs array boundaries access in
+davinci_gpio_probe().
+
+Validate the obtained nirq value so that it won't exceed the maximum
+number of IRQs per bank.
+
+Found by Linux Verification Center (linuxtesting.org) with SVACE.
+
+Fixes: eb3744a2dd01 ("gpio: davinci: Do not assume continuous IRQ numbering")
+Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
+Link: https://lore.kernel.org/r/20240618144344.16943-1-amishin@t-argos.ru
+Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpio-davinci.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
+index 576cb2d0708f6..ae5c3080ec3c1 100644
+--- a/drivers/gpio/gpio-davinci.c
++++ b/drivers/gpio/gpio-davinci.c
+@@ -227,6 +227,11 @@ static int davinci_gpio_probe(struct platform_device *pdev)
+       else
+               nirq = DIV_ROUND_UP(ngpio, 16);
++      if (nirq > MAX_INT_PER_BANK) {
++              dev_err(dev, "Too many IRQs!\n");
++              return -EINVAL;
++      }
++
+       chips = devm_kzalloc(dev, sizeof(*chips), GFP_KERNEL);
+       if (!chips)
+               return -ENOMEM;
+-- 
+2.43.0
+
diff --git a/queue-5.4/media-dvbdev-initialize-sbuf.patch b/queue-5.4/media-dvbdev-initialize-sbuf.patch
new file mode 100644 (file)
index 0000000..01fddc7
--- /dev/null
@@ -0,0 +1,42 @@
+From 818e312650aa85f2e34d12db4d324e8e61ad19bd Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 25 Mar 2024 14:50:25 +0000
+Subject: media: dvbdev: Initialize sbuf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Ricardo Ribalda <ribalda@chromium.org>
+
+[ Upstream commit 17d1316de0d7dc1bdc5d6e3ad4efd30a9bf1a381 ]
+
+Because the size passed to copy_from_user() cannot be known beforehand,
+it needs to be checked during runtime with check_object_size. That makes
+gcc believe that the content of sbuf can be used before init.
+
+Fix:
+./include/linux/thread_info.h:215:17: warning: ‘sbuf’ may be used uninitialized [-Wmaybe-uninitialized]
+
+Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
+Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/media/dvb-core/dvbdev.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
+index d4d903a9dc31e..ba91c6f8fe1d8 100644
+--- a/drivers/media/dvb-core/dvbdev.c
++++ b/drivers/media/dvb-core/dvbdev.c
+@@ -974,7 +974,7 @@ int dvb_usercopy(struct file *file,
+                    int (*func)(struct file *file,
+                    unsigned int cmd, void *arg))
+ {
+-      char    sbuf[128];
++      char    sbuf[128] = {};
+       void    *mbuf = NULL;
+       void    *parg = NULL;
+       int     err  = -EINVAL;
+-- 
+2.43.0
+
diff --git a/queue-5.4/mtd-partitions-redboot-added-conversion-of-operands-.patch b/queue-5.4/mtd-partitions-redboot-added-conversion-of-operands-.patch
new file mode 100644 (file)
index 0000000..7808e12
--- /dev/null
@@ -0,0 +1,40 @@
+From 34d22f0ddf9c2e71e6b5b3196095a3609b7a814c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 15 Mar 2024 12:37:58 +0300
+Subject: mtd: partitions: redboot: Added conversion of operands to a larger
+ type
+
+From: Denis Arefev <arefev@swemel.ru>
+
+[ Upstream commit 1162bc2f8f5de7da23d18aa4b7fbd4e93c369c50 ]
+
+The value of an arithmetic expression directory * master->erasesize is
+subject to overflow due to a failure to cast operands to a larger data
+type before perfroming arithmetic
+
+Found by Linux Verification Center (linuxtesting.org) with SVACE.
+
+Signed-off-by: Denis Arefev <arefev@swemel.ru>
+Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
+Link: https://lore.kernel.org/linux-mtd/20240315093758.20790-1-arefev@swemel.ru
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/mtd/parsers/redboot.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/mtd/parsers/redboot.c b/drivers/mtd/parsers/redboot.c
+index 4f3bcc59a6385..3351be6514732 100644
+--- a/drivers/mtd/parsers/redboot.c
++++ b/drivers/mtd/parsers/redboot.c
+@@ -102,7 +102,7 @@ static int parse_redboot_partitions(struct mtd_info *master,
+                       offset -= master->erasesize;
+               }
+       } else {
+-              offset = directory * master->erasesize;
++              offset = (unsigned long) directory * master->erasesize;
+               while (mtd_block_isbad(master, offset)) {
+                       offset += master->erasesize;
+                       if (offset == master->size)
+-- 
+2.43.0
+
diff --git a/queue-5.4/net-dpaa2-avoid-explicit-cpumask-var-allocation-on-s.patch b/queue-5.4/net-dpaa2-avoid-explicit-cpumask-var-allocation-on-s.patch
new file mode 100644 (file)
index 0000000..be69eaf
--- /dev/null
@@ -0,0 +1,72 @@
+From 5ebfa9f83926e87a412372f0dc79a3048e863a27 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 31 Mar 2024 13:34:41 +0800
+Subject: net/dpaa2: Avoid explicit cpumask var allocation on stack
+
+From: Dawei Li <dawei.li@shingroup.cn>
+
+[ Upstream commit d33fe1714a44ff540629b149d8fab4ac6967585c ]
+
+For CONFIG_CPUMASK_OFFSTACK=y kernel, explicit allocation of cpumask
+variable on stack is not recommended since it can cause potential stack
+overflow.
+
+Instead, kernel code should always use *cpumask_var API(s) to allocate
+cpumask var in config-neutral way, leaving allocation strategy to
+CONFIG_CPUMASK_OFFSTACK.
+
+Use *cpumask_var API(s) to address it.
+
+Signed-off-by: Dawei Li <dawei.li@shingroup.cn>
+Link: https://lore.kernel.org/r/20240331053441.1276826-3-dawei.li@shingroup.cn
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+index ad0d070f7f172..5f5766b1f3b70 100644
+--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
++++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+@@ -1945,11 +1945,14 @@ static int dpaa2_eth_xdp_xmit(struct net_device *net_dev, int n,
+ static int update_xps(struct dpaa2_eth_priv *priv)
+ {
+       struct net_device *net_dev = priv->net_dev;
+-      struct cpumask xps_mask;
+-      struct dpaa2_eth_fq *fq;
+       int i, num_queues, netdev_queues;
++      struct dpaa2_eth_fq *fq;
++      cpumask_var_t xps_mask;
+       int err = 0;
++      if (!alloc_cpumask_var(&xps_mask, GFP_KERNEL))
++              return -ENOMEM;
++
+       num_queues = dpaa2_eth_queue_count(priv);
+       netdev_queues = (net_dev->num_tc ? : 1) * num_queues;
+@@ -1959,16 +1962,17 @@ static int update_xps(struct dpaa2_eth_priv *priv)
+       for (i = 0; i < netdev_queues; i++) {
+               fq = &priv->fq[i % num_queues];
+-              cpumask_clear(&xps_mask);
+-              cpumask_set_cpu(fq->target_cpu, &xps_mask);
++              cpumask_clear(xps_mask);
++              cpumask_set_cpu(fq->target_cpu, xps_mask);
+-              err = netif_set_xps_queue(net_dev, &xps_mask, i);
++              err = netif_set_xps_queue(net_dev, xps_mask, i);
+               if (err) {
+                       netdev_warn_once(net_dev, "Error setting XPS queue\n");
+                       break;
+               }
+       }
++      free_cpumask_var(xps_mask);
+       return err;
+ }
+-- 
+2.43.0
+
diff --git a/queue-5.4/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch b/queue-5.4/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch
new file mode 100644 (file)
index 0000000..2e893db
--- /dev/null
@@ -0,0 +1,85 @@
+From bcc2ec5e4c5690260fb65bd3a8bed96dd9a50787 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 31 Mar 2024 13:34:40 +0800
+Subject: net/iucv: Avoid explicit cpumask var allocation on stack
+
+From: Dawei Li <dawei.li@shingroup.cn>
+
+[ Upstream commit be4e1304419c99a164b4c0e101c7c2a756b635b9 ]
+
+For CONFIG_CPUMASK_OFFSTACK=y kernel, explicit allocation of cpumask
+variable on stack is not recommended since it can cause potential stack
+overflow.
+
+Instead, kernel code should always use *cpumask_var API(s) to allocate
+cpumask var in config-neutral way, leaving allocation strategy to
+CONFIG_CPUMASK_OFFSTACK.
+
+Use *cpumask_var API(s) to address it.
+
+Signed-off-by: Dawei Li <dawei.li@shingroup.cn>
+Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
+Link: https://lore.kernel.org/r/20240331053441.1276826-2-dawei.li@shingroup.cn
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/iucv/iucv.c | 26 ++++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
+index 8b5b8cc93ff8b..f0364649186b9 100644
+--- a/net/iucv/iucv.c
++++ b/net/iucv/iucv.c
+@@ -565,7 +565,7 @@ static void iucv_setmask_mp(void)
+  */
+ static void iucv_setmask_up(void)
+ {
+-      cpumask_t cpumask;
++      static cpumask_t cpumask;
+       int cpu;
+       /* Disable all cpu but the first in cpu_irq_cpumask. */
+@@ -673,23 +673,33 @@ static int iucv_cpu_online(unsigned int cpu)
+ static int iucv_cpu_down_prep(unsigned int cpu)
+ {
+-      cpumask_t cpumask;
++      cpumask_var_t cpumask;
++      int ret = 0;
+       if (!iucv_path_table)
+               return 0;
+-      cpumask_copy(&cpumask, &iucv_buffer_cpumask);
+-      cpumask_clear_cpu(cpu, &cpumask);
+-      if (cpumask_empty(&cpumask))
++      if (!alloc_cpumask_var(&cpumask, GFP_KERNEL))
++              return -ENOMEM;
++
++      cpumask_copy(cpumask, &iucv_buffer_cpumask);
++      cpumask_clear_cpu(cpu, cpumask);
++      if (cpumask_empty(cpumask)) {
+               /* Can't offline last IUCV enabled cpu. */
+-              return -EINVAL;
++              ret = -EINVAL;
++              goto __free_cpumask;
++      }
+       iucv_retrieve_cpu(NULL);
+       if (!cpumask_empty(&iucv_irq_cpumask))
+-              return 0;
++              goto __free_cpumask;
++
+       smp_call_function_single(cpumask_first(&iucv_buffer_cpumask),
+                                iucv_allow_cpu, NULL, 1);
+-      return 0;
++
++__free_cpumask:
++      free_cpumask_var(cpumask);
++      return ret;
+ }
+ /**
+-- 
+2.43.0
+
diff --git a/queue-5.4/nvme-fixup-comment-for-nvme-rdma-provider-type.patch b/queue-5.4/nvme-fixup-comment-for-nvme-rdma-provider-type.patch
new file mode 100644 (file)
index 0000000..02959ec
--- /dev/null
@@ -0,0 +1,38 @@
+From 2885bfaf8ad28e5d995cc46ebd9cd8b57aa322a0 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 17 Jun 2024 09:27:27 +0200
+Subject: nvme: fixup comment for nvme RDMA Provider Type
+
+From: Hannes Reinecke <hare@suse.de>
+
+[ Upstream commit f80a55fa90fa76d01e3fffaa5d0413e522ab9a00 ]
+
+PRTYPE is the provider type, not the QP service type.
+
+Fixes: eb793e2c9286 ("nvme.h: add NVMe over Fabrics definitions")
+Signed-off-by: Hannes Reinecke <hare@kernel.org>
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Keith Busch <kbusch@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ include/linux/nvme.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/nvme.h b/include/linux/nvme.h
+index dd2801c28b99c..bdd628c8182fd 100644
+--- a/include/linux/nvme.h
++++ b/include/linux/nvme.h
+@@ -69,8 +69,8 @@ enum {
+       NVMF_RDMA_QPTYPE_DATAGRAM       = 2, /* Reliable Datagram */
+ };
+-/* RDMA QP Service Type codes for Discovery Log Page entry TSAS
+- * RDMA_QPTYPE field
++/* RDMA Provider Type codes for Discovery Log Page entry TSAS
++ * RDMA_PRTYPE field
+  */
+ enum {
+       NVMF_RDMA_PRTYPE_NOT_SPECIFIED  = 1, /* No Provider Specified */
+-- 
+2.43.0
+
index acd60c5a940c86f732c26622ab441a3e867dbae4..1876efe257dd506aa9d0aee837ec90d91c6e54aa 100644 (file)
@@ -193,3 +193,12 @@ net-phy-micrel-add-microchip-ksz-9477-to-the-device-.patch
 sparc-fix-old-compat_sys_select.patch
 parisc-use-correct-compat-recv-recvfrom-syscalls.patch
 netfilter-nf_tables-fully-validate-nft_data_value-on.patch
+drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch
+mtd-partitions-redboot-added-conversion-of-operands-.patch
+net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch
+net-dpaa2-avoid-explicit-cpumask-var-allocation-on-s.patch
+alsa-emux-improve-patch-ioctl-data-validation.patch
+media-dvbdev-initialize-sbuf.patch
+soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch
+nvme-fixup-comment-for-nvme-rdma-provider-type.patch
+gpio-davinci-validate-the-obtained-number-of-irqs.patch
diff --git a/queue-5.4/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch b/queue-5.4/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch
new file mode 100644 (file)
index 0000000..fc87377
--- /dev/null
@@ -0,0 +1,71 @@
+From 05269e4bec88e57f9607dab7c4da0a9d4001c73c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 25 Mar 2024 11:55:07 -0500
+Subject: soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer
+ message
+
+From: Andrew Davis <afd@ti.com>
+
+[ Upstream commit ddbf3204f600a4d1f153498f618369fca352ae00 ]
+
+mbox_send_message() sends a u32 bit message, not a pointer to a message.
+We only convert to a pointer type as a generic type. If we want to send
+a dummy message of 0, then simply send 0 (NULL).
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Link: https://lore.kernel.org/r/20240325165507.30323-1-afd@ti.com
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/soc/ti/wkup_m3_ipc.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/soc/ti/wkup_m3_ipc.c b/drivers/soc/ti/wkup_m3_ipc.c
+index ef3f95fefab58..6634709e646c4 100644
+--- a/drivers/soc/ti/wkup_m3_ipc.c
++++ b/drivers/soc/ti/wkup_m3_ipc.c
+@@ -14,7 +14,6 @@
+ #include <linux/irq.h>
+ #include <linux/module.h>
+ #include <linux/of.h>
+-#include <linux/omap-mailbox.h>
+ #include <linux/platform_device.h>
+ #include <linux/remoteproc.h>
+ #include <linux/suspend.h>
+@@ -151,7 +150,6 @@ static irqreturn_t wkup_m3_txev_handler(int irq, void *ipc_data)
+ static int wkup_m3_ping(struct wkup_m3_ipc *m3_ipc)
+ {
+       struct device *dev = m3_ipc->dev;
+-      mbox_msg_t dummy_msg = 0;
+       int ret;
+       if (!m3_ipc->mbox) {
+@@ -167,7 +165,7 @@ static int wkup_m3_ping(struct wkup_m3_ipc *m3_ipc)
+        * the RX callback to avoid multiple interrupts being received
+        * by the CM3.
+        */
+-      ret = mbox_send_message(m3_ipc->mbox, &dummy_msg);
++      ret = mbox_send_message(m3_ipc->mbox, NULL);
+       if (ret < 0) {
+               dev_err(dev, "%s: mbox_send_message() failed: %d\n",
+                       __func__, ret);
+@@ -189,7 +187,6 @@ static int wkup_m3_ping(struct wkup_m3_ipc *m3_ipc)
+ static int wkup_m3_ping_noirq(struct wkup_m3_ipc *m3_ipc)
+ {
+       struct device *dev = m3_ipc->dev;
+-      mbox_msg_t dummy_msg = 0;
+       int ret;
+       if (!m3_ipc->mbox) {
+@@ -198,7 +195,7 @@ static int wkup_m3_ping_noirq(struct wkup_m3_ipc *m3_ipc)
+               return -EIO;
+       }
+-      ret = mbox_send_message(m3_ipc->mbox, &dummy_msg);
++      ret = mbox_send_message(m3_ipc->mbox, NULL);
+       if (ret < 0) {
+               dev_err(dev, "%s: mbox_send_message() failed: %d\n",
+                       __func__, ret);
+-- 
+2.43.0
+