linux/drivers/reset
Kees Cook fed2ef7aba reset: Annotate struct reset_control_array 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 reset_control_array.
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: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20230922175229.work.838-kees@kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
2023-10-24 14:10:04 -07:00
..
hisilicon reset: hisilicon: Use dev_err_probe instead of dev_err 2023-07-28 18:07:01 +02:00
starfive reset: starfive: jh7110: Add StarFive STG/ISP/VOUT resets support 2023-07-26 11:45:31 -07:00
sti reset: sti: simplify driver's config and build 2023-05-08 09:28:31 +02:00
tegra reset: tegra-bpmp: Restore Handle errors in BPMP response 2022-04-04 11:14:13 +02:00
core.c reset: Annotate struct reset_control_array with __counted_by 2023-10-24 14:10:04 -07:00
Kconfig ARM: SoC drivers for 6.5 2023-06-29 15:22:19 -07:00
Makefile ARM: SoC drivers for 6.5 2023-06-29 15:22:19 -07:00
reset-a10sr.c
reset-ath79.c reset: ath79: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-axs10x.c reset: axs10x: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-bcm6345.c reset: bcm6345: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-berlin.c
reset-brcmstb-rescal.c reset: brcmstb-rescal: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-brcmstb.c
reset-hsdk.c reset: reset-hsdk: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-imx7.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-intel-gw.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-k210.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-lantiq.c reset: lantiq: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-lpc18xx.c reset: lpc18xx: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-ma35d1.c reset: Add Nuvoton ma35d1 reset driver support 2023-06-05 13:18:09 +02:00
reset-meson-audio-arb.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-meson.c reset: meson: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-microchip-sparx5.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-mpfs.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-npcm.c reset: npcm: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-pistachio.c
reset-qcom-aoss.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-qcom-pdc.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-raspberrypi.c
reset-rzg2l-usbphy-ctrl.c reset: renesas: Check return value of reset_control_deassert() 2022-04-04 11:00:27 +02:00
reset-scmi.c
reset-simple.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-socfpga.c reset: socfpga: add empty driver allowing consumers to probe 2021-10-05 12:23:16 +02:00
reset-sunplus.c reset: Add Sunplus SP7021 reset driver 2022-07-08 14:23:39 +02:00
reset-sunxi.c
reset-ti-sci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_320.RULE 2022-06-10 14:51:36 +02:00
reset-ti-syscon.c reset: ti: syscon: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-tn48m.c reset: Add Delta TN48M CPLD reset controller 2022-02-25 09:59:35 +01:00
reset-tps380x.c reset: tps380x: Fix spelling mistake "Voltags" -> "Voltage" 2022-07-28 14:08:50 +02:00
reset-uniphier-glue.c reset: uniphier-glue: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-uniphier.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-zynq.c reset: zynq: remove unneeded call to platfrom_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-zynqmp.c reset: zynqmp: removed unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00