Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: S5P: fix incorrect loop iterator usage on gpio-interrupt

Loop iterator value after terminating list_for_each_entry()
is not NULL. This patch fixes incorrect iterator usage in
GPIO interrupt code for SAMSUNG S5P platforms.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>

authored by

Marek Szyprowski and committed by
Kukjin Kim
b76f7cdc 4344646f

+5 -4
+5 -4
arch/arm/plat-s5p/irq-gpioint.c
··· 114 114 { 115 115 static int used_gpioint_groups = 0; 116 116 int group = chip->group; 117 - struct s5p_gpioint_bank *bank = NULL; 117 + struct s5p_gpioint_bank *b, *bank = NULL; 118 118 struct irq_chip_generic *gc; 119 119 struct irq_chip_type *ct; 120 120 121 121 if (used_gpioint_groups >= S5P_GPIOINT_GROUP_COUNT) 122 122 return -ENOMEM; 123 123 124 - list_for_each_entry(bank, &banks, list) { 125 - if (group >= bank->start && 126 - group < bank->start + bank->nr_groups) 124 + list_for_each_entry(b, &banks, list) { 125 + if (group >= b->start && group < b->start + b->nr_groups) { 126 + bank = b; 127 127 break; 128 + } 128 129 } 129 130 if (!bank) 130 131 return -EINVAL;