From 642c40ddce466776c6813065c6d355c65e091e0d Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sat, 29 Jun 2024 22:22:24 -0400 Subject: [PATCH] Fixes for 4.19 Signed-off-by: Sasha Levin --- ...-improve-patch-ioctl-data-validation.patch | 81 +++++++++++++ ...-ili9881c-fix-warning-with-gpio-cont.patch | 54 +++++++++ ...ocate-the-correct-amount-of-memory-f.patch | 66 +++++++++++ ...-dev-name-for-label-and-automatic-ba.patch | 109 ++++++++++++++++++ ...validate-the-obtained-number-of-irqs.patch | 47 ++++++++ queue-4.19/media-dvbdev-initialize-sbuf.patch | 42 +++++++ ...xplicit-cpumask-var-allocation-on-st.patch | 85 ++++++++++++++ ...-comment-for-nvme-rdma-provider-type.patch | 38 ++++++ queue-4.19/series | 9 ++ ...pc-send-null-dummy-message-instead-o.patch | 71 ++++++++++++ 10 files changed, 602 insertions(+) create mode 100644 queue-4.19/alsa-emux-improve-patch-ioctl-data-validation.patch create mode 100644 queue-4.19/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch create mode 100644 queue-4.19/gpio-davinci-allocate-the-correct-amount-of-memory-f.patch create mode 100644 queue-4.19/gpio-davinci-use-dev-name-for-label-and-automatic-ba.patch create mode 100644 queue-4.19/gpio-davinci-validate-the-obtained-number-of-irqs.patch create mode 100644 queue-4.19/media-dvbdev-initialize-sbuf.patch create mode 100644 queue-4.19/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch create mode 100644 queue-4.19/nvme-fixup-comment-for-nvme-rdma-provider-type.patch create mode 100644 queue-4.19/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch diff --git a/queue-4.19/alsa-emux-improve-patch-ioctl-data-validation.patch b/queue-4.19/alsa-emux-improve-patch-ioctl-data-validation.patch new file mode 100644 index 00000000000..a2bfb65dd6b --- /dev/null +++ b/queue-4.19/alsa-emux-improve-patch-ioctl-data-validation.patch @@ -0,0 +1,81 @@ +From 512c6c8b250da6649cb8dc4cf59125e5cb927776 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 6 Apr 2024 08:48:20 +0200 +Subject: ALSA: emux: improve patch ioctl data validation + +From: Oswald Buddenhagen + +[ 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 +Message-ID: <20240406064830.1029573-8-oswald.buddenhagen@gmx.de> +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch b/queue-4.19/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch new file mode 100644 index 00000000000..31d36046b68 --- /dev/null +++ b/queue-4.19/drm-panel-ilitek-ili9881c-fix-warning-with-gpio-cont.patch @@ -0,0 +1,54 @@ +From b953bbcc07c476857b9a39206caf0f7da684d37f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 17 Mar 2024 17:48:39 +0200 +Subject: drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that + sleep + +From: Laurent Pinchart + +[ 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 +Reviewed-by: Neil Armstrong +Link: https://lore.kernel.org/r/20240317154839.21260-1-laurent.pinchart@ideasonboard.com +Signed-off-by: Neil Armstrong +Link: https://patchwork.freedesktop.org/patch/msgid/20240317154839.21260-1-laurent.pinchart@ideasonboard.com +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/gpio-davinci-allocate-the-correct-amount-of-memory-f.patch b/queue-4.19/gpio-davinci-allocate-the-correct-amount-of-memory-f.patch new file mode 100644 index 00000000000..b8b5a5c7f20 --- /dev/null +++ b/queue-4.19/gpio-davinci-allocate-the-correct-amount-of-memory-f.patch @@ -0,0 +1,66 @@ +From b0ad83162efdc95b7465f188464ac62f4c769707 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 31 Aug 2018 14:13:24 -0500 +Subject: gpio: davinci: Allocate the correct amount of memory for controller + +From: Andrew F. Davis + +[ 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 +Tested-by: Keerthy +Acked-by: Keerthy +Signed-off-by: Linus Walleij +Stable-dep-of: 7aa9b96e9a73 ("gpio: davinci: Validate the obtained number of IRQs") +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/gpio-davinci-use-dev-name-for-label-and-automatic-ba.patch b/queue-4.19/gpio-davinci-use-dev-name-for-label-and-automatic-ba.patch new file mode 100644 index 00000000000..49c360e2d3b --- /dev/null +++ b/queue-4.19/gpio-davinci-use-dev-name-for-label-and-automatic-ba.patch @@ -0,0 +1,109 @@ +From 95854f3c60ef5c638d38d0f81c6f4233485a77d5 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +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 + +[ 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 +Tested-by: Keerthy +Acked-by: Keerthy +Signed-off-by: Linus Walleij +Stable-dep-of: 7aa9b96e9a73 ("gpio: davinci: Validate the obtained number of IRQs") +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/gpio-davinci-validate-the-obtained-number-of-irqs.patch b/queue-4.19/gpio-davinci-validate-the-obtained-number-of-irqs.patch new file mode 100644 index 00000000000..00f516fa511 --- /dev/null +++ b/queue-4.19/gpio-davinci-validate-the-obtained-number-of-irqs.patch @@ -0,0 +1,47 @@ +From 16215b9e16c417305c33fca11a643ecc627ffd4e Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 18 Jun 2024 17:43:44 +0300 +Subject: gpio: davinci: Validate the obtained number of IRQs + +From: Aleksandr Mishin + +[ 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 +Link: https://lore.kernel.org/r/20240618144344.16943-1-amishin@t-argos.ru +Signed-off-by: Bartosz Golaszewski +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/media-dvbdev-initialize-sbuf.patch b/queue-4.19/media-dvbdev-initialize-sbuf.patch new file mode 100644 index 00000000000..1723b1279f9 --- /dev/null +++ b/queue-4.19/media-dvbdev-initialize-sbuf.patch @@ -0,0 +1,42 @@ +From cb91d5b8b86a8bc61a27b28d657a53a33a0195de Mon Sep 17 00:00:00 2001 +From: Sasha Levin +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 + +[ 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 +Signed-off-by: Hans Verkuil +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch b/queue-4.19/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch new file mode 100644 index 00000000000..83ee0566615 --- /dev/null +++ b/queue-4.19/net-iucv-avoid-explicit-cpumask-var-allocation-on-st.patch @@ -0,0 +1,85 @@ +From 39d828f57df5d3f63f4e6b80c523bd960ebb77c5 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 31 Mar 2024 13:34:40 +0800 +Subject: net/iucv: Avoid explicit cpumask var allocation on stack + +From: Dawei Li + +[ 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 +Reviewed-by: Alexandra Winter +Link: https://lore.kernel.org/r/20240331053441.1276826-2-dawei.li@shingroup.cn +Signed-off-by: Jakub Kicinski +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/nvme-fixup-comment-for-nvme-rdma-provider-type.patch b/queue-4.19/nvme-fixup-comment-for-nvme-rdma-provider-type.patch new file mode 100644 index 00000000000..e92391be840 --- /dev/null +++ b/queue-4.19/nvme-fixup-comment-for-nvme-rdma-provider-type.patch @@ -0,0 +1,38 @@ +From da7625cdc6db1411d94b4b051876e818eaf8ba4b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 17 Jun 2024 09:27:27 +0200 +Subject: nvme: fixup comment for nvme RDMA Provider Type + +From: Hannes Reinecke + +[ 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 +Reviewed-by: Christoph Hellwig +Signed-off-by: Keith Busch +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.19/series b/queue-4.19/series index 914f3d2044f..3a64edf5ea4 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -114,3 +114,12 @@ revert-mm-memblock-replace-dereferences-of-memblock_.patch 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 diff --git a/queue-4.19/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch b/queue-4.19/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch new file mode 100644 index 00000000000..e00fca17ccb --- /dev/null +++ b/queue-4.19/soc-ti-wkup_m3_ipc-send-null-dummy-message-instead-o.patch @@ -0,0 +1,71 @@ +From 1193feb11bb1ec3677b44e2d6b676d277a1628a1 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +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 + +[ 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 +Link: https://lore.kernel.org/r/20240325165507.30323-1-afd@ti.com +Signed-off-by: Nishanth Menon +Signed-off-by: Sasha Levin +--- + 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 + #include + #include +-#include + #include + #include + #include +@@ -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 + -- 2.47.3