--- /dev/null
+From 512c6c8b250da6649cb8dc4cf59125e5cb927776 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 31a4ea94830e0..235b16af6083d 100644
+--- a/sound/synth/emux/soundfont.c
++++ b/sound/synth/emux/soundfont.c
+@@ -710,7 +710,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)
+@@ -719,12 +718,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 */
+@@ -751,7 +754,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;
+@@ -962,10 +965,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
+
--- /dev/null
+From b953bbcc07c476857b9a39206caf0f7da684d37f 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 3ad4a46c4e945..cc11cf41d392c 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
+
--- /dev/null
+From b0ad83162efdc95b7465f188464ac62f4c769707 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 31 Aug 2018 14:13:24 -0500
+Subject: gpio: davinci: Allocate the correct amount of memory for controller
+
+From: Andrew F. Davis <afd@ti.com>
+
+[ Upstream commit c809e37a3b5a889063ae737ff8b54705219d1ddc ]
+
+Previously we created a controller structure per bank of GPIO pins. This
+has since been changed to one per controller, but the allocation size
+was not changed. Fix this here.
+
+This also leaves the variable 'nbank' unused, instead of removing it,
+move it down and use it to clean up a loop. For loops with multiple
+initializers and/or iteration expressions, especially ones that don't
+use those loop counters are quite hard to follow, fix this.
+
+Signed-off-by: Andrew F. Davis <afd@ti.com>
+Tested-by: Keerthy <j-keerthy@ti.com>
+Acked-by: Keerthy <j-keerthy@ti.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Stable-dep-of: 7aa9b96e9a73 ("gpio: davinci: Validate the obtained number of IRQs")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpio-davinci.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
+index c94890466fe9c..a807a84948b70 100644
+--- a/drivers/gpio/gpio-davinci.c
++++ b/drivers/gpio/gpio-davinci.c
+@@ -165,7 +165,7 @@ davinci_gpio_get_pdata(struct platform_device *pdev)
+
+ static int davinci_gpio_probe(struct platform_device *pdev)
+ {
+- int gpio, bank, i, ret = 0;
++ int bank, i, ret = 0;
+ unsigned int ngpio, nbank, nirq;
+ struct davinci_gpio_controller *chips;
+ struct davinci_gpio_platform_data *pdata;
+@@ -204,10 +204,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)
+ else
+ nirq = DIV_ROUND_UP(ngpio, 16);
+
+- nbank = DIV_ROUND_UP(ngpio, 32);
+- chips = devm_kcalloc(dev,
+- nbank, sizeof(struct davinci_gpio_controller),
+- GFP_KERNEL);
++ chips = devm_kzalloc(dev, sizeof(*chips), GFP_KERNEL);
+ if (!chips)
+ return -ENOMEM;
+
+@@ -248,7 +245,8 @@ static int davinci_gpio_probe(struct platform_device *pdev)
+ #endif
+ spin_lock_init(&chips->lock);
+
+- for (gpio = 0, bank = 0; gpio < ngpio; gpio += 32, bank++)
++ nbank = DIV_ROUND_UP(ngpio, 32);
++ for (bank = 0; bank < nbank; bank++)
+ chips->regs[bank] = gpio_base + offset_array[bank];
+
+ ret = devm_gpiochip_add_data(dev, &chips->chip, chips);
+--
+2.43.0
+
--- /dev/null
+From 95854f3c60ef5c638d38d0f81c6f4233485a77d5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 31 Aug 2018 14:13:23 -0500
+Subject: gpio: davinci: Use dev name for label and automatic base selection
+
+From: Andrew F. Davis <afd@ti.com>
+
+[ Upstream commit 587f7a694f016b65f8de8ea8b5fb0402712b5475 ]
+
+Use dev_name to get a unique label and use -1 for a base to get our
+selection automatically. We pull in all GPIOs per chip now so this
+does not have the effect of out of order labels like before.
+
+We do these both together so we can drop all the static data in one
+patch. This also lets us normalize the return paths as we don't need
+any cleanup after this change.
+
+Signed-off-by: Andrew F. Davis <afd@ti.com>
+Tested-by: Keerthy <j-keerthy@ti.com>
+Acked-by: Keerthy <j-keerthy@ti.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Stable-dep-of: 7aa9b96e9a73 ("gpio: davinci: Validate the obtained number of IRQs")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpio-davinci.c | 22 ++++------------------
+ 1 file changed, 4 insertions(+), 18 deletions(-)
+
+diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
+index ead75c1062fbc..c94890466fe9c 100644
+--- a/drivers/gpio/gpio-davinci.c
++++ b/drivers/gpio/gpio-davinci.c
+@@ -41,7 +41,6 @@ struct davinci_gpio_regs {
+ typedef struct irq_chip *(*gpio_get_irq_chip_cb_t)(unsigned int irq);
+
+ #define BINTEN 0x8 /* GPIO Interrupt Per-Bank Enable Register */
+-#define MAX_LABEL_SIZE 20
+
+ static void __iomem *gpio_base;
+ static unsigned int offset_array[5] = {0x10, 0x38, 0x60, 0x88, 0xb0};
+@@ -166,14 +165,12 @@ davinci_gpio_get_pdata(struct platform_device *pdev)
+
+ static int davinci_gpio_probe(struct platform_device *pdev)
+ {
+- static int ctrl_num, bank_base;
+ int gpio, bank, i, ret = 0;
+ unsigned int ngpio, nbank, nirq;
+ struct davinci_gpio_controller *chips;
+ struct davinci_gpio_platform_data *pdata;
+ struct device *dev = &pdev->dev;
+ struct resource *res;
+- char label[MAX_LABEL_SIZE];
+
+ pdata = davinci_gpio_get_pdata(pdev);
+ if (!pdata) {
+@@ -229,10 +226,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)
+ }
+ }
+
+- snprintf(label, MAX_LABEL_SIZE, "davinci_gpio.%d", ctrl_num++);
+- chips->chip.label = devm_kstrdup(dev, label, GFP_KERNEL);
+- if (!chips->chip.label)
+- return -ENOMEM;
++ chips->chip.label = dev_name(dev);
+
+ chips->chip.direction_input = davinci_direction_in;
+ chips->chip.get = davinci_gpio_get;
+@@ -240,7 +234,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)
+ chips->chip.set = davinci_gpio_set;
+
+ chips->chip.ngpio = ngpio;
+- chips->chip.base = bank_base;
++ chips->chip.base = -1;
+
+ #ifdef CONFIG_OF_GPIO
+ chips->chip.of_gpio_n_cells = 2;
+@@ -253,28 +247,20 @@ static int davinci_gpio_probe(struct platform_device *pdev)
+ }
+ #endif
+ spin_lock_init(&chips->lock);
+- bank_base += ngpio;
+
+ for (gpio = 0, bank = 0; gpio < ngpio; gpio += 32, bank++)
+ chips->regs[bank] = gpio_base + offset_array[bank];
+
+ ret = devm_gpiochip_add_data(dev, &chips->chip, chips);
+ if (ret)
+- goto err;
++ return ret;
+
+ platform_set_drvdata(pdev, chips);
+ ret = davinci_gpio_irq_setup(pdev);
+ if (ret)
+- goto err;
++ return ret;
+
+ return 0;
+-
+-err:
+- /* Revert the static variable increments */
+- ctrl_num--;
+- bank_base -= ngpio;
+-
+- return ret;
+ }
+
+ /*--------------------------------------------------------------------------*/
+--
+2.43.0
+
--- /dev/null
+From 16215b9e16c417305c33fca11a643ecc627ffd4e 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 a807a84948b70..ed273ae962df6 100644
+--- a/drivers/gpio/gpio-davinci.c
++++ b/drivers/gpio/gpio-davinci.c
+@@ -204,6 +204,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
+
--- /dev/null
+From cb91d5b8b86a8bc61a27b28d657a53a33a0195de 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 f426e1bf16f0a..5124f412c05dc 100644
+--- a/drivers/media/dvb-core/dvbdev.c
++++ b/drivers/media/dvb-core/dvbdev.c
+@@ -964,7 +964,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
+
--- /dev/null
+From 39d828f57df5d3f63f4e6b80c523bd960ebb77c5 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 da4cee91fc63d..2f82a6f0992e4 100644
+--- a/net/iucv/iucv.c
++++ b/net/iucv/iucv.c
+@@ -578,7 +578,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. */
+@@ -686,23 +686,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
+
--- /dev/null
+From da7625cdc6db1411d94b4b051876e818eaf8ba4b 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 818dbe9331be3..d8984b0c25be4 100644
+--- a/include/linux/nvme.h
++++ b/include/linux/nvme.h
+@@ -71,8 +71,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
+
netfilter-nf_tables-validate-family-when-identifying.patch
asoc-fsl-asoc-card-set-priv-pdev-before-using-it.patch
netfilter-nf_tables-fully-validate-nft_data_value-on.patch
+drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch
+net-iucv-avoid-explicit-cpumask-var-allocation-on-st.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-use-dev-name-for-label-and-automatic-ba.patch
+gpio-davinci-allocate-the-correct-amount-of-memory-f.patch
+gpio-davinci-validate-the-obtained-number-of-irqs.patch
--- /dev/null
+From 1193feb11bb1ec3677b44e2d6b676d277a1628a1 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 8358b97505db2..e3a58588547a6 100644
+--- a/drivers/soc/ti/wkup_m3_ipc.c
++++ b/drivers/soc/ti/wkup_m3_ipc.c
+@@ -22,7 +22,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>
+@@ -158,7 +157,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) {
+@@ -174,7 +172,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);
+@@ -196,7 +194,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) {
+@@ -205,7 +202,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
+