Message ID | 20240417071830.47703-1-philmd@linaro.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | MIPS: SGI-IP30: Use bitmap API when iterating over bitmap | expand |
On Wed, Apr 17, 2024 at 09:18:29AM +0200, Philippe Mathieu-Daudé wrote: > Do not open-code bitmap_set(). Besides, <linux/bitmap.h> API > allows architecture specific optimizations, so prefer it. > > Use the HEART_NUM_IRQS definition to express the end of the > HEART bitmap. please use HEART_L4_INT_HEART_EXCP + 1, like what the code did before. Thomas.
On Wed, Apr 17, 2024 at 09:18:29AM +0200, Philippe Mathieu-Daudé wrote: > Do not open-code bitmap_set(). Besides, <linux/bitmap.h> API > allows architecture specific optimizations, so prefer it. > > Use the HEART_NUM_IRQS definition to express the end of the > HEART bitmap. > > Inspired-by: Yury Norov <yury.norov@gmail.com> > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > arch/mips/sgi-ip30/ip30-irq.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/arch/mips/sgi-ip30/ip30-irq.c b/arch/mips/sgi-ip30/ip30-irq.c > index 423c32cb66ed..bdafff076191 100644 > --- a/arch/mips/sgi-ip30/ip30-irq.c > +++ b/arch/mips/sgi-ip30/ip30-irq.c > @@ -264,7 +264,6 @@ void __init arch_init_irq(void) > struct irq_domain *domain; > struct fwnode_handle *fn; > unsigned long *mask; > - int i; > > mips_cpu_irq_init(); > > @@ -300,8 +299,7 @@ void __init arch_init_irq(void) > set_bit(HEART_L3_INT_TIMER, heart_irq_map); > > /* Reserve the error interrupts (#51 to #63). */ > - for (i = HEART_L4_INT_XWID_ERR_9; i <= HEART_L4_INT_HEART_EXCP; i++) > - set_bit(i, heart_irq_map); > + bitmap_set(heart_irq_map, HEART_L4_INT_XWID_ERR_9, HEART_NUM_IRQS); This function has a signature bitmap_set(map, start, length) So this should be a: bitmap_set(heart_irq_map, HEART_L4_INT_XWID_ERR_9, HEART_NUM_IRQS - HEART_L4_INT_XWID_ERR_9 + 1) Also on the above group of set_bit(). It should be 2 bitmap_set() calls to me. HEART_L0_INT [0, 2] is the first one, and HEART_L2_INT to HEART_L4_INT [46, 63] is the other. Isn't? Thanks, Yury
On 17/4/24 19:27, Yury Norov wrote: > On Wed, Apr 17, 2024 at 09:18:29AM +0200, Philippe Mathieu-Daudé wrote: >> Do not open-code bitmap_set(). Besides, <linux/bitmap.h> API >> allows architecture specific optimizations, so prefer it. >> >> Use the HEART_NUM_IRQS definition to express the end of the >> HEART bitmap. >> >> Inspired-by: Yury Norov <yury.norov@gmail.com> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> --- >> arch/mips/sgi-ip30/ip30-irq.c | 4 +--- >> 1 file changed, 1 insertion(+), 3 deletions(-) >> >> diff --git a/arch/mips/sgi-ip30/ip30-irq.c b/arch/mips/sgi-ip30/ip30-irq.c >> index 423c32cb66ed..bdafff076191 100644 >> --- a/arch/mips/sgi-ip30/ip30-irq.c >> +++ b/arch/mips/sgi-ip30/ip30-irq.c >> @@ -264,7 +264,6 @@ void __init arch_init_irq(void) >> struct irq_domain *domain; >> struct fwnode_handle *fn; >> unsigned long *mask; >> - int i; >> >> mips_cpu_irq_init(); >> >> @@ -300,8 +299,7 @@ void __init arch_init_irq(void) >> set_bit(HEART_L3_INT_TIMER, heart_irq_map); >> >> /* Reserve the error interrupts (#51 to #63). */ >> - for (i = HEART_L4_INT_XWID_ERR_9; i <= HEART_L4_INT_HEART_EXCP; i++) >> - set_bit(i, heart_irq_map); >> + bitmap_set(heart_irq_map, HEART_L4_INT_XWID_ERR_9, HEART_NUM_IRQS); > > This function has a signature > bitmap_set(map, start, length) Doh, I thought it was (map, from_inc, to_exc), my bad. > So this should be a: > bitmap_set(heart_irq_map, HEART_L4_INT_XWID_ERR_9, > HEART_NUM_IRQS - HEART_L4_INT_XWID_ERR_9 + 1) > > Also on the above group of set_bit(). It should be 2 bitmap_set() > calls to me. HEART_L0_INT [0, 2] is the first one, and HEART_L2_INT > to HEART_L4_INT [46, 63] is the other. Isn't? Please disregard this patch, sorry for the noise. Regards, Phil.
diff --git a/arch/mips/sgi-ip30/ip30-irq.c b/arch/mips/sgi-ip30/ip30-irq.c index 423c32cb66ed..bdafff076191 100644 --- a/arch/mips/sgi-ip30/ip30-irq.c +++ b/arch/mips/sgi-ip30/ip30-irq.c @@ -264,7 +264,6 @@ void __init arch_init_irq(void) struct irq_domain *domain; struct fwnode_handle *fn; unsigned long *mask; - int i; mips_cpu_irq_init(); @@ -300,8 +299,7 @@ void __init arch_init_irq(void) set_bit(HEART_L3_INT_TIMER, heart_irq_map); /* Reserve the error interrupts (#51 to #63). */ - for (i = HEART_L4_INT_XWID_ERR_9; i <= HEART_L4_INT_HEART_EXCP; i++) - set_bit(i, heart_irq_map); + bitmap_set(heart_irq_map, HEART_L4_INT_XWID_ERR_9, HEART_NUM_IRQS); fn = irq_domain_alloc_named_fwnode("HEART"); WARN_ON(fn == NULL);
Do not open-code bitmap_set(). Besides, <linux/bitmap.h> API allows architecture specific optimizations, so prefer it. Use the HEART_NUM_IRQS definition to express the end of the HEART bitmap. Inspired-by: Yury Norov <yury.norov@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- arch/mips/sgi-ip30/ip30-irq.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)