drivers: core: lists: fix for loop index type
authorAlexander Preißner <fpga-garage@preissner-muc.de>
Sat, 6 Nov 2021 01:08:59 +0000 (02:08 +0100)
committerSimon Glass <sjg@chromium.org>
Thu, 2 Dec 2021 16:15:43 +0000 (09:15 -0700)
commitfe67ba7418a1d31341a766b3f01833803dcba4f5
treead031cb5a259c4c9ed13363bf839320eeb6bf94e
parentf89615088fba1b1f33713ad26dbe3a3c82b692ec
drivers: core: lists: fix for loop index type

* fixes the bug in function bind_drivers_pass that for
CONFIG_CC_OPTIMIZE_FOR_SIZE=n and no entries in the driver_info list,
i.e. n_ents == 0, the processor steps into the first loop iteration
despite the loop condition being false.
* the Xilinx Zynq-7000 device would eventually hang due to an attempted
access to an invalid memory address
* the bug is fixed by changing the type of idx from uint to int

Board: zynq-zybo
Target: ARM
Compiler: arm-none-eabi-gcc 9.2.1

Signed-off-by: Alexander Preissner <fpga-garage@preissner-muc.de>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
drivers/core/lists.c