From: Arnd Bergmann <arnd@arndb.de>
Building with 'make W=1' shows an array overflow:
drivers/pinctrl/pinctrl-microchip-sgpio.c: In function 'microchip_sgpio_irq_settype':
drivers/pinctrl/pinctrl-microchip-sgpio.c:154:39: error: array subscript 10 is above array bounds of 'const u8[10]' {aka 'const unsigned char[10]'} [-Werror=array-bounds]
154 | u32 regoff = priv->properties->regoff[rno] + off;
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
drivers/pinctrl/pinctrl-microchip-sgpio.c:55:5: note: while referencing 'regoff'
55 | u8 regoff[MAXREG];
| ^~~~~~
It's not clear to me what was meant here, my best guess is that the
offset should have been applied to the third argument instead of the
second.
Fixes: be2dc859abd4 ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/pinctrl/pinctrl-microchip-sgpio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -572,7 +572,7 @@ static void microchip_sgpio_irq_settype(struct irq_data *data,/* Type value spread over 2 registers sets: low, high bit */sgpio_clrsetbits(bank->priv,REG_INT_TRIGGER,addr.bit,BIT(addr.port),(!!(type&0x1))<<addr.port);-sgpio_clrsetbits(bank->priv,REG_INT_TRIGGER+SGPIO_MAX_BITS,addr.bit,+sgpio_clrsetbits(bank->priv,REG_INT_TRIGGER,addr.bit+SGPIO_MAX_BITS,BIT(addr.port),(!!(type&0x2))<<addr.port);if(type==SGPIO_INT_TRG_LEVEL)
--
2.29.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Tue, Mar 23, 2021 at 2:10 PM Arnd Bergmann [off-list ref] wrote:
From: Arnd Bergmann <arnd@arndb.de>
Building with 'make W=1' shows an array overflow:
drivers/pinctrl/pinctrl-microchip-sgpio.c: In function 'microchip_sgpio_irq_settype':
drivers/pinctrl/pinctrl-microchip-sgpio.c:154:39: error: array subscript 10 is above array bounds of 'const u8[10]' {aka 'const unsigned char[10]'} [-Werror=array-bounds]
154 | u32 regoff = priv->properties->regoff[rno] + off;
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
drivers/pinctrl/pinctrl-microchip-sgpio.c:55:5: note: while referencing 'regoff'
55 | u8 regoff[MAXREG];
| ^~~~~~
It's not clear to me what was meant here, my best guess is that the
offset should have been applied to the third argument instead of the
second.
Fixes: be2dc859abd4 ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
From: Lars Povlsen <hidden> Date: 2021-03-28 17:19:19
Linus Walleij writes:
On Tue, Mar 23, 2021 at 2:10 PM Arnd Bergmann [off-list ref] wrote:
quoted
From: Arnd Bergmann <arnd@arndb.de>
Building with 'make W=1' shows an array overflow:
drivers/pinctrl/pinctrl-microchip-sgpio.c: In function 'microchip_sgpio_irq_settype':
drivers/pinctrl/pinctrl-microchip-sgpio.c:154:39: error: array subscript 10 is above array bounds of 'const u8[10]' {aka 'const unsigned char[10]'} [-Werror=array-bounds]
154 | u32 regoff = priv->properties->regoff[rno] + off;
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
drivers/pinctrl/pinctrl-microchip-sgpio.c:55:5: note: while referencing 'regoff'
55 | u8 regoff[MAXREG];
| ^~~~~~
It's not clear to me what was meant here, my best guess is that the
offset should have been applied to the third argument instead of the
second.
Fixes: be2dc859abd4 ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Patch applied.
Yours,
Linus Walleij
I don't understand - I submitted a fix for this already in February
(reported by Gustavo). It took some time for you to get it ack'ed - but
you did (Feb 1st).
Did it end up getting dropped?
---Lars
--
Lars Povlsen,
Microchip
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Sun, Mar 28, 2021 at 7:18 PM Lars Povlsen [off-list ref] wrote:
Linus Walleij writes:
quoted
On Tue, Mar 23, 2021 at 2:10 PM Arnd Bergmann [off-list ref] wrote:
quoted
From: Arnd Bergmann <arnd@arndb.de>
Building with 'make W=1' shows an array overflow:
drivers/pinctrl/pinctrl-microchip-sgpio.c: In function 'microchip_sgpio_irq_settype':
drivers/pinctrl/pinctrl-microchip-sgpio.c:154:39: error: array subscript 10 is above array bounds of 'const u8[10]' {aka 'const unsigned char[10]'} [-Werror=array-bounds]
154 | u32 regoff = priv->properties->regoff[rno] + off;
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
drivers/pinctrl/pinctrl-microchip-sgpio.c:55:5: note: while referencing 'regoff'
55 | u8 regoff[MAXREG];
| ^~~~~~
It's not clear to me what was meant here, my best guess is that the
offset should have been applied to the third argument instead of the
second.
Fixes: be2dc859abd4 ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Patch applied.
Yours,
Linus Walleij
I don't understand - I submitted a fix for this already in February
(reported by Gustavo). It took some time for you to get it ack'ed - but
you did (Feb 1st).
Did it end up getting dropped?
No I ended up with your fix in fixes, then forgot about it and applied
Arnds fix to devel (for-next) and ended up getting a conflict in my
face.
Last night I rebased devel, dropped Arnds patch and thus solved
the conflict.
Yours,
Linus Walleij
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel