Skip to content

Commit 7ba0847

Browse files
jpoimboebroonie
authored andcommitted
spi: cadence: Fix out-of-bounds array access in cdns_mrvl_xspi_setup_clock()
If requested_clk > 128, cdns_mrvl_xspi_setup_clock() iterates over the entire cdns_mrvl_xspi_clk_div_list array without breaking out early, causing 'i' to go beyond the array bounds. Fix that by stopping the loop when it gets to the last entry, clamping the clock to the minimum 6.25 MHz. Fixes the following warning with an UBSAN kernel: vmlinux.o: warning: objtool: cdns_mrvl_xspi_setup_clock: unexpected end of section .text.cdns_mrvl_xspi_setup_clock Fixes: 26d34fd ("spi: cadence: Add clock configuration for Marvell xSPI overlay") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202503282236.UhfRsF3B-lkp@intel.com/ Link: https://lore.kernel.org/r/gs2ooxfkblnee6cc5yfcxh7nu4wvoqnuv4lrllkhccxgcac2jg@7snmwd73jkhs Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Link: https://patch.msgid.link/h6bef6wof6zpjfp3jbhrkigqsnykdfy6j4qmmvb6gsabhianhj@k57a7hwpa3bj Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 40369bf commit 7ba0847

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/spi/spi-cadence-xspi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ static bool cdns_mrvl_xspi_setup_clock(struct cdns_xspi_dev *cdns_xspi,
432432
u32 clk_reg;
433433
bool update_clk = false;
434434

435-
while (i < ARRAY_SIZE(cdns_mrvl_xspi_clk_div_list)) {
435+
while (i < (ARRAY_SIZE(cdns_mrvl_xspi_clk_div_list) - 1)) {
436436
clk_val = MRVL_XSPI_CLOCK_DIVIDED(
437437
cdns_mrvl_xspi_clk_div_list[i]);
438438
if (clk_val <= requested_clk)

0 commit comments

Comments
 (0)