interconnect: qcom: icc-rpm: Set the count member before accessing the flex array
authorGeorgi Djakov <djakov@kernel.org>
Tue, 3 Dec 2024 22:33:34 +0000 (00:33 +0200)
committerGeorgi Djakov <djakov@kernel.org>
Tue, 17 Dec 2024 12:03:02 +0000 (14:03 +0200)
commit00a973e093e93690d433f1e1873ee52a6a6eca1f
tree3382aa9657224e8f7fdc287efd9c37f595df1922
parent40384c840ea1944d7c5a392e8975ed088ecf0b37
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: dd4904f3b924 ("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>
drivers/interconnect/qcom/icc-rpm.c