Sergei Shtylyov wrote: > > Hello. > Hi ;-) > On 28-09-2010 5:31, Kukjin Kim wrote: > > > From: Changhwan Youn<chaos.youn@xxxxxxxxxxx> > > > It is reported by Junseok Jung that using clz instruction is > > better instead of using for-loop to find the interrupt source. > > This patch modifies interrupt source searching code using __fls(). > > The __fls() is implemented using clz instruction. > > > Suggested-by: Junseok Jung<jundols.jung@xxxxxxxxxxx> > > Signed-off-by: Changhwan Youn<chaos.youn@xxxxxxxxxxx> > > Signed-off-by: Kukjin Kim<kgene.kim@xxxxxxxxxxx> > > --- > > arch/arm/mach-s5pv310/irq-combiner.c | 6 +----- > > 1 files changed, 1 insertions(+), 5 deletions(-) > > > diff --git a/arch/arm/mach-s5pv310/irq-combiner.c b/arch/arm/mach-s5pv310/irq- > combiner.c > > index 0f70521..39e3647 100644 > > --- a/arch/arm/mach-s5pv310/irq-combiner.c > > +++ b/arch/arm/mach-s5pv310/irq-combiner.c > > @@ -66,11 +66,7 @@ static void combiner_handle_cascade_irq(unsigned int irq, > struct irq_desc *desc) > > if (status == 0) > > goto out; > > > > - for (combiner_irq = 0; combiner_irq< 32; combiner_irq++) { > > - if (status & 0x1) > > - break; > > - status>>= 1; > > - } > > + combiner_irq = __fls(status); > > But the loop finds the *first* set bit, not the last... > Yes, you're right. So I already re-submitted like following :-) http://lists.infradead.org/pipermail/linux-arm-kernel/2010-September/027071. html Thanks for your pointing out. Best regards, Kgene. -- Kukjin Kim <kgene.kim@xxxxxxxxxxx>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html