From: Jonathan McDowell Date: Mon, 15 May 2006 09:43:49 +0000 (-0700) Subject: [PATCH] ARM: OMAP: Fix checking for multiple boot tags in board config X-Git-Tag: v2.6.17-omap1~64 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=589002d002418f2e54448b5eeab0b4216e274fd8;p=linux-2.6-omap-h63xx.git [PATCH] ARM: OMAP: Fix checking for multiple boot tags in board config Currently if we look for more than one instance of a boot tag and it's defined in the board config rather than passed by the boot loader we can get stuck in a loop where the same tag is processed many times. This can be seen with the gpio-switch driver, for example. The patch below fixes this by respecting the skip parameter to get_config when we're scanning the board config structure. Signed-Off-By: Jonathan McDowell --- diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index 0625df51dce..39ab667368c 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c @@ -114,8 +114,12 @@ static const void *get_config(u16 tag, size_t len, int skip, size_t *len_out) * in the kernel. */ for (i = 0; i < omap_board_config_size; i++) { if (omap_board_config[i].tag == tag) { - kinfo = &omap_board_config[i]; - break; + if (skip == 0) { + kinfo = &omap_board_config[i]; + break; + } else { + skip--; + } } } if (kinfo == NULL)