linux/drivers/dma
Kees Cook 195e46df2d dmaengine: stm32-dma: Annotate struct stm32_dma_desc with __counted_by
Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
(for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).

As found with Coccinelle[1], add __counted_by for struct stm32_dma_desc.
Additionally, since the element count member must be set before accessing
the annotated flexible array member, move its initialization earlier.

[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci

Cc: Vinod Koul <vkoul@kernel.org>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: dmaengine@vger.kernel.org
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20230817235859.49846-12-keescook@chromium.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2023-09-28 16:42:14 +05:30
..
bestcomm dmaengine: bestcomm: bestcomm: Convert to platform remove callback returning void 2023-09-28 13:10:46 +05:30
dw dmaengine: dw: platform: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
dw-axi-dmac dmaengine: dw-axi-dmac: dw-axi-dmac-platform: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
dw-edma dmaengine: dw-edma: Add HDMA DebugFS support 2023-05-24 12:20:45 +05:30
fsl-dpaa2-qdma bus: fsl-mc: Make remove function return void 2023-05-30 18:58:43 -05:00
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers 2023-09-28 13:26:34 +05:30
ioat dmaengine: ioatdma: use pci_dev_id() to simplify the code 2023-08-21 18:39:25 +05:30
lgm dmaengine: lgm: Use builtin_platform_driver macro to simplify the code 2023-08-21 11:13:09 +05:30
mediatek dmaengine: mediatek: mtk-uart-apdma: Convert to platform remove callback returning void 2023-09-28 13:10:50 +05:30
ppc4xx dmaengine: ppc4xx: adma: Convert to platform remove callback returning void 2023-09-28 13:10:52 +05:30
ptdma dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
qcom dmaengine: qcom: bam_dma: Annotate struct bam_async_desc with __counted_by 2023-09-28 16:42:14 +05:30
sf-pdma dmaengine: sf-pdma: Annotate struct sf_pdma with __counted_by 2023-09-28 16:42:14 +05:30
sh dmaengine: sh: usb-dmac: Convert to platform remove callback returning void 2023-09-28 13:10:55 +05:30
ti dmaengine: ti: omap-dma: Convert to platform remove callback returning void 2023-09-28 13:10:57 +05:30
xilinx dmaengine: xilinx: zynqmp_dma: Convert to platform remove callback returning void 2023-09-28 13:10:59 +05:30
acpi-dma.c dmaengine: acpi: Check for errors from acpi_register_gsi() separately 2021-08-06 21:48:11 +05:30
altera-msgdma.c dmaengine: altera-msgdma: Convert to platform remove callback returning void 2023-09-28 13:10:45 +05:30
amba-pl08x.c dmaengine: pl08x: Fix double word 2022-09-29 12:24:16 +05:30
apple-admac.c dmaengine: apple-admac: Annotate struct admac_data with __counted_by 2023-09-28 16:42:02 +05:30
at_hdmac.c dmaengine: at_hdmac: Annotate struct at_desc with __counted_by 2023-09-28 16:42:02 +05:30
at_xdmac.c dmaengine: at_xdmac: Convert to platform remove callback returning void 2023-09-28 13:10:45 +05:30
bcm2835-dma.c dmaengine: bcm2835-dma: Convert to platform remove callback returning void 2023-09-28 13:10:46 +05:30
bcm-sba-raid.c dmaengine: bcm-sba-raid: Convert to platform remove callback returning void 2023-09-28 13:10:46 +05:30
dma-axi-dmac.c dmaengine: axi-dmac: Annotate struct axi_dmac_desc with __counted_by 2023-09-28 16:42:02 +05:30
dma-jz4780.c dmaengine: dma-jz4780: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
dmaengine.c dmaengine: Simplify dma_async_device_register() 2023-08-21 18:36:46 +05:30
dmaengine.h dmaengine: dmaengine_desc_callback_valid(): Check for callback_result 2021-10-25 09:42:56 +05:30
dmatest.c treewide: use get_random_bytes() when possible 2022-10-11 17:42:58 -06:00
ep93xx_dma.c dmaengine: ep93xx: Use struct_size() 2023-08-02 00:02:51 +05:30
fsl_raid.c dmaengine: fsl_raid: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
fsl_raid.h
fsl-edma-common.c dmaengine: fsl-edma: integrate v3 support 2023-08-22 20:11:03 +05:30
fsl-edma-common.h dmaengine: fsl-edma: integrate v3 support 2023-08-22 20:11:03 +05:30
fsl-edma-main.c dmaengine: fsl-edma-main: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
fsl-qdma.c dmaengine: fsl-qdma: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
fsldma.c dmaengine: fsldma: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
fsldma.h fsldma: fix very broken 32-bit ppc ioread64 functionality 2020-08-29 13:50:56 -07:00
hisi_dma.c dmaengine: hisilicon: Annotate struct hisi_dma_dev with __counted_by 2023-09-28 16:42:14 +05:30
idma64.c dmaengine: idma64: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
idma64.h
img-mdc-dma.c dmaengine: img-mdc-dma: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
imx-dma.c dmaengine: imx-dma: Convert to platform remove callback returning void 2023-09-28 13:10:49 +05:30
imx-sdma.c dmaengine: imx-sdma: Convert to platform remove callback returning void 2023-09-28 13:10:49 +05:30
k3dma.c dmaengine: k3dma: Convert to platform remove callback returning void 2023-09-28 13:10:49 +05:30
Kconfig dmaengine: hisi: Simplify preconditions of CONFIG_K3_DMA 2023-09-28 16:19:23 +05:30
lpc18xx-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
Makefile dmaengine: fsl-edma: clean up EXPORT_SYMBOL_GPL in fsl-edma-common.c 2023-08-22 20:11:02 +05:30
mcf-edma-main.c dmaengine: mcf-edma-main: Convert to platform remove callback returning void 2023-09-28 13:10:49 +05:30
milbeaut-hdmac.c dmaengine: milbeaut-hdmac: Prefer kcalloc over open coded arithmetic 2021-10-25 12:12:13 +05:30
milbeaut-xdmac.c dmaengine: milbeaut-xdmac: Fix a resource leak in the error handling path of the probe function 2020-12-29 10:08:00 +05:30
mmp_pdma.c dmaengine: mmp_pdma: Convert to platform remove callback returning void 2023-09-28 13:10:50 +05:30
mmp_tdma.c dmaengine: mmp_tdma: Convert to platform remove callback returning void 2023-09-28 13:10:51 +05:30
moxart-dma.c dmaengine: moxart-dma: Annotate struct moxart_desc with __counted_by 2023-09-28 16:42:14 +05:30
mpc512x_dma.c dmaengine: mpc512x_dma: Convert to platform remove callback returning void 2023-09-28 13:10:51 +05:30
mv_xor_v2.c dmaengine: mv_xor_v2: Convert to platform remove callback returning void 2023-09-28 13:10:51 +05:30
mv_xor.c dmaengine: mv_xor: drop of_match_ptr from of_device_id table 2020-11-24 23:02:20 +05:30
mv_xor.h
mxs-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
nbpfaxi.c dmaengine: nbpfaxi: Convert to platform remove callback returning void 2023-09-28 13:10:52 +05:30
of-dma.c dmaengine: Use of_property_present() for testing DT property presence 2023-03-17 23:11:42 +05:30
owl-dma.c dmaengine: owl-dma: Convert to platform remove callback returning void 2023-09-28 13:10:52 +05:30
pch_dma.c dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API 2022-01-08 22:16:44 +05:30
pl330.c dmaengine: pl330: Return DMA_PAUSED when transaction is paused 2023-08-07 00:01:41 +05:30
plx_dma.c dmaengine: plx_dma: Don't set chancnt 2023-05-24 12:24:32 +05:30
pxa_dma.c dmaengine: pxa_dma: Convert to platform remove callback returning void 2023-09-28 13:10:52 +05:30
sa11x0-dma.c dmaengine: sa11x0: Annotate struct sa11x0_dma_desc with __counted_by 2023-09-28 16:42:14 +05:30
sprd-dma.c dmaengine: sprd: Annotate struct sprd_dma_dev with __counted_by 2023-09-28 16:42:14 +05:30
st_fdma.c dmaengine: st_fdma: Convert to platform remove callback returning void 2023-09-28 13:10:55 +05:30
st_fdma.h dmaengine: st_fdma: Annotate struct st_fdma_desc with __counted_by 2023-09-28 16:42:14 +05:30
ste_dma40_ll.c dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
ste_dma40_ll.h
ste_dma40.c dmaengine: ste_dma40: Add missing IRQ check in d40_probe 2023-08-21 11:12:16 +05:30
ste_dma40.h dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
stm32-dma.c dmaengine: stm32-dma: Annotate struct stm32_dma_desc with __counted_by 2023-09-28 16:42:14 +05:30
stm32-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
stm32-mdma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
sun4i-dma.c dmaengine: sun4i-dma: Convert to platform remove callback returning void 2023-09-28 13:10:55 +05:30
sun6i-dma.c dmaengine: sun6i-dma: Convert to platform remove callback returning void 2023-09-28 13:10:56 +05:30
tegra20-apb-dma.c dmaengine: tegra20-apb-dma: Convert to platform remove callback returning void 2023-09-28 13:10:56 +05:30
tegra186-gpc-dma.c dmaengine: tegra186-gpc-dma: Convert to platform remove callback returning void 2023-09-28 13:10:56 +05:30
tegra210-adma.c dmaengine: tegra210-adma: Convert to platform remove callback returning void 2023-09-28 13:10:57 +05:30
timb_dma.c dmaengine: timb_dma: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30
TODO
txx9dmac.c dmaengine: txx9dmac: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30
txx9dmac.h
uniphier-mdmac.c
uniphier-xdmac.c dmaengine: uniphier-xdmac: Fix type of address variables 2022-01-03 17:49:37 +05:30
virt-dma.c dmaengine: virt-dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
virt-dma.h
xgene-dma.c dmaengine: xgene-dma: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30