linux/drivers/dma/ti
Anders Roxell 301a96cc4d dmaengine: ti: edma: Fix memory allocation size for queue_priority_map
[ Upstream commit e63419dbf2 ]

Fix a critical memory allocation bug in edma_setup_from_hw() where
queue_priority_map was allocated with insufficient memory. The code
declared queue_priority_map as s8 (*)[2] (pointer to array of 2 s8),
but allocated memory using sizeof(s8) instead of the correct size.

This caused out-of-bounds memory writes when accessing:
  queue_priority_map[i][0] = i;
  queue_priority_map[i][1] = i;

The bug manifested as kernel crashes with "Oops - undefined instruction"
on ARM platforms (BeagleBoard-X15) during EDMA driver probe, as the
memory corruption triggered kernel hardening features on Clang.

Change the allocation to use sizeof(*queue_priority_map) which
automatically gets the correct size for the 2D array structure.

Fixes: 2b6b3b7420 ("ARM/dmaengine: edma: Merge the two drivers under drivers/dma/")
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Link: https://lore.kernel.org/r/20250830094953.3038012-1-anders.roxell@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-10-02 13:39:04 +02:00
..
cppi41.c dmaengine: cppi41: Fix cppi41_dma_prep_slave_sg() when idle 2019-10-23 21:15:21 +05:30
dma-crossbar.c dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate 2022-07-12 16:35:18 +02:00
edma.c dmaengine: ti: edma: Fix memory allocation size for queue_priority_map 2025-10-02 13:39:04 +02:00
k3-psil-am64.c dmaengine: ti: k3-psil: Add initial map for AM64 2020-12-11 21:20:09 +05:30
k3-psil-am654.c dmaengine: ti: k3-psil: make symbols static 2020-01-21 13:10:24 +05:30
k3-psil-j721e.c dmaengine: ti: k3-psil-j721e: Add entry for CSI2RX 2021-08-29 19:14:19 +05:30
k3-psil-j7200.c dmaengine: ti: k3-psil: add map for j7200 2020-08-17 10:50:31 +05:30
k3-psil-priv.h dmaengine: ti: k3-psil: Add initial map for AM64 2020-12-11 21:20:09 +05:30
k3-psil.c dmaengine: ti: k3-psil: Add initial map for AM64 2020-12-11 21:20:09 +05:30
k3-udma-glue.c dmaengine: ti: k3-udma-glue: fix memory leak when register device fail 2022-11-16 09:58:19 +01:00
k3-udma-private.c dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get() 2022-09-28 11:11:46 +02:00
k3-udma.c dmaengine: ti: Add NULL check in udma_probe() 2025-06-27 11:05:16 +01:00
k3-udma.h dmaengine: ti: k3-udma-glue: Add support for K3 PKTDMA 2020-12-11 21:20:10 +05:30
Kconfig dmaengine: ti: k3-udma: Drop COMPILE_TEST for the drivers for now 2020-04-15 21:25:25 +05:30
Makefile dmaengine: ti: k3-psil: Add initial map for AM64 2020-12-11 21:20:09 +05:30
omap-dma.c dmaengine: ti: omap-dma: Skip pointless cpu_pm context restore on errors 2021-05-31 10:01:53 +05:30