[PATCH] gpio-uclass: fix gpio lookup by label

Simon Glass sjg at chromium.org
Tue Oct 4 01:49:14 CEST 2022


On Mon, 3 Oct 2022 at 03:03, Rasmus Villemoes
<rasmus.villemoes at prevas.dk> wrote:
>
> Matching anything that just happens to have the sought-for label as a
> prefix is wrong. For example, if the board designer has designated 10
> lines for debug purposes, named "debug1" through "debug10", and we are
> looking up "debug1", if debug10 happens to be met first during the
> iteration we'd wrongly return that.
>
> In theory, this can break existing users that could rely on this
> quirk, but OTOH keeping the current broken semantics can cause a lot
> of grief for people hitting this in the future and not understanding
> why they don't find the line they expect. Considering how few in-tree
> defconfigs currently set DM_GPIO_LOOKUP_LABEL (ignoring sandbox, only
> four "real" boards), let's fix it before the use becomes more
> widespread.
>
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
> ---
>  drivers/gpio/gpio-uclass.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)

Reviewed-by: Simon Glass <sjg at chromium.org>

It seems like we need a one-sided strncmp():

int strncmp(const char *match, const char *str, int max_len_of_str)


More information about the U-Boot mailing list