From 589002d002418f2e54448b5eeab0b4216e274fd8 Mon Sep 17 00:00:00 2001 From: Jonathan McDowell Date: Mon, 15 May 2006 02:43:49 -0700 Subject: [PATCH] [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 --- arch/arm/plat-omap/common.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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) -- 2.41.1