linux/drivers/interconnect/qcom
Georgi Djakov 00a973e093 interconnect: qcom: icc-rpm: Set the count member before accessing the flex array
The following UBSAN error is reported during boot on the db410c board on
a clang-19 build:

Internal error: UBSAN: array index out of bounds: 00000000f2005512 [#1] PREEMPT SMP
...
pc : qnoc_probe+0x5f8/0x5fc
...

The cause of the error is that the counter member was not set before
accessing the annotated flexible array member, but after that. Fix this
by initializing it earlier.

Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
Closes: https://lore.kernel.org/r/CA+G9fYs+2mBz1y2dAzxkj9-oiBJ2Acm1Sf1h2YQ3VmBqj_VX2g@mail.gmail.com
Fixes: dd4904f3b9 ("interconnect: qcom: Annotate struct icc_onecell_data with __counted_by")
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20241203223334.233404-1-djakov@kernel.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
History 2024-12-17 14:03:02 +02:00
..
bcm-voter.c interconnect: qcom: bcm-voter: Use enable_maks for keepalive voting 2023-08-22 01:43:56 +03:00
bcm-voter.h interconnect: qcom: icc-rpmh: Retire DEFINE_QBCM 2023-08-22 15:07:33 +03:00
icc-common.c interconnect: qcom: add missing MODULE_DESCRIPTION() macros 2024-06-13 16:12:26 +03:00
icc-common.h interconnect: constify of_phandle_args in xlate 2024-02-26 00:38:17 +02:00
icc-rpm-clocks.c interconnect: qcom: qcm2290: Hook up MAS_APPS_PROC's bus clock 2023-10-09 15:08:03 +03:00
icc-rpm.c interconnect: qcom: icc-rpm: Set the count member before accessing the flex array 2024-12-17 14:03:02 +02:00
icc-rpm.h interconnect: qcom: Make qnoc_remove return void 2023-11-22 15:57:07 +02:00
icc-rpmh.c interconnect: qcom: icc-rpmh: rename qos_clks_required flag 2024-10-22 11:11:25 +03:00
icc-rpmh.h interconnect: qcom: icc-rpmh: rename qos_clks_required flag 2024-10-22 11:11:25 +03:00
Kconfig Merge branch 'icc-sar2130p' into icc-next 2024-11-05 01:32:05 +02:00
Makefile Merge branch 'icc-sar2130p' into icc-next 2024-11-05 01:32:05 +02:00
msm8909.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8916.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8937.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8939.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8953.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8974.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8976.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8996.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8996.h interconnect: qcom: Add MSM8996 interconnect provider driver 2021-11-22 18:35:22 +02:00
osm-l3.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qcm2290.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qcs404.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qcs615.c interconnect: qcom: add QCS615 interconnect provider driver 2024-10-22 11:30:14 +03:00
qcs615.h interconnect: qcom: add QCS615 interconnect provider driver 2024-10-22 11:30:14 +03:00
qcs8300.c interconnect: qcom: add QCS8300 interconnect provider driver 2024-10-22 12:36:29 +03:00
qcs8300.h interconnect: qcom: add QCS8300 interconnect provider driver 2024-10-22 12:36:29 +03:00
qdu1000.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qdu1000.h interconnect: qcom: Add QDU1000/QRU1000 interconnect driver 2023-01-05 16:16:49 +02:00
sa8775p.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sar2130p.c interconnect: qcom: add support for SAR2130P 2024-10-22 12:27:38 +03:00
sc7180.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sc7180.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc7280.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sc7280.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc8180x.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sc8180x.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc8280xp.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sc8280xp.h interconnect: qcom: sc8280xp: Drop IP0 interconnects 2023-01-18 16:15:03 +02:00
sdm660.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdm670.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdm670.h interconnect: qcom: add sdm670 interconnects 2023-01-19 20:12:47 +02:00
sdm845.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdm845.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sdx55.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdx55.h interconnect: qcom: sdx55: drop IP0 remnants 2023-01-18 16:11:52 +02:00
sdx65.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdx65.h interconnect: qcom: Add SDX65 interconnect provider driver 2022-04-26 14:11:26 +03:00
sdx75.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdx75.h interconnect: qcom: Add SDX75 interconnect provider driver 2023-10-10 12:15:05 +03:00
sm6115.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm6350.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm6350.h interconnect: qcom: Add SM6350 driver support 2022-06-20 14:27:07 +03:00
sm7150.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm7150.h interconnect: qcom: Add SM7150 driver support 2024-02-29 22:42:38 +02:00
sm8150.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8150.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sm8250.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8250.h interconnect: qcom: sm8250: Fix QUP0 nodes 2023-07-18 11:16:48 +03:00
sm8350.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8350.h interconnect: qcom: sm8350: drop DISP nodes 2024-08-23 23:04:51 +03:00
sm8450.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8450.h interconnect: qcom: Add SM8450 interconnect provider driver 2021-12-14 23:43:26 +02:00
sm8550.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8550.h interconnect: qcom: sm8550: Remove bogus per-RSC BCMs and nodes 2024-01-31 15:47:47 +02:00
sm8650.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8650.h interconnect: qcom: introduce RPMh Network-On-Chip Interconnect on SM8650 SoC 2023-11-24 00:15:06 +02:00
smd-rpm.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
x1e80100.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
x1e80100.h interconnect: qcom: Add X1E80100 interconnect provider driver 2023-11-24 00:24:14 +02:00