clockevents: a couple of fixes 4.3
Subsystems (3)
Hi Thomas,
this pull request contains a couple of fixes removing the NO_IRQ usage:
- Removed bad usage of the NO_IRQ macro which prevent to detect an
error when calling irq_of_parse_and_map on the rockchip and keystone timers (Daniel Lezcano)
Thanks !
-- Daniel
The following changes since commit eef7635a22f6b144206b5ca2f1398f637acffc4d:
clockevents: Remove unused set_mode() callback (2015-09-14 11:00:55
+0200)
are available in the git repository at:
http://git.linaro.org/people/daniel.lezcano/clockevents.git
clockevents/4.3-fixes
for you to fetch changes up to bdf7344e14d826d0df438a55fc51146d179e198d:
clocksource/drivers/keystone: Fix bad NO_IRQ usage (2015-09-29
14:33:51 +0200)
----------------------------------------------------------------
Daniel Lezcano (2):
clocksource/drivers/rockchip: Fix bad NO_IRQ usage clocksource/drivers/keystone: Fix bad NO_IRQ usage
drivers/clocksource/rockchip_timer.c | 2 +- drivers/clocksource/timer-keystone.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
Signature · 5 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
PATCH 1/2 clocksource/drivers/rockchip: Fix bad NO_IRQ usage
The current code assumes the 'irq_of_parse_and_map' will return NO_IRQ in case of failure. Unfortunately, the NO_IRQ is not consistent across the different architectures and we must not rely on it.
NO_IRQ is equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in case of an error. Hence, the latter won't be detected and will lead to a crash.
Fix this by just checking 'irq' is different from zero.
--- drivers/clocksource/rockchip_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/clocksource/rockchip_timer.c +1 -1
@@ -148,7 +148,7 @@ static void __init rk_timer_init(struct device_node *np) bc_timer.freq =clk_get_rate (timer_clk); irq =irq_of_parse_and_map (np,0 ); -if (irq ==NO_IRQ ) { +if (!irq) {pr_err ("Failed to map interrupts for '%s'\n" ,TIMER_NAME );return ; }
Signature · 1 line
1.9.1
PATCH 2/2 clocksource/drivers/keystone: Fix bad NO_IRQ usage
The current code assumes the 'irq_of_parse_and_map' will return NO_IRQ in case of failure. Unfortunately, the NO_IRQ is not consistent across the different architectures and we must not rely on it.
NO_IRQ is equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in case of an error. Hence, the latter won't be detected and will lead to a crash.
Fix this by just checking 'irq' is different from zero.
--- drivers/clocksource/timer-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/clocksource/timer-keystone.c +1 -1
@@ -152,7 +152,7 @@ static void __init keystone_timer_init(struct device_node *np)int irq, error; irq =irq_of_parse_and_map (np,0 ); -if (irq ==NO_IRQ ) { +if (!irq) {pr_err ("%s: failed to map interrupts\n" , __func__);return ; }
Signature · 1 line
1.9.1
Re: [PATCH 2/2] clocksource/drivers/keystone: Fix bad NO_IRQ usage
Quoted 7 lines · Daniel Lezcano
The current code assumes the '
irq_of_parse_and_map' will returnNO_IRQin case of failure. Unfortunately, theNO_IRQis not consistent across the different architectures and we must not rely on it.
NO_IRQis equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in case of an error. Hence, the latter won't be detected and will lead to a crash.
Quoted 7 lines
Fix this by just checking 'irq' is different from zero.
Signed-off-by Daniel Lezcano <[email protected]>--- drivers/clocksource/timer-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Re: [PATCH 1/2] clocksource/drivers/rockchip: Fix bad NO_IRQ usage
In reply to Daniel Lezcano? 2015?09?30? 18:08, Daniel Lezcano ??:
Quoted 10 lines
The current code assumes the '
irq_of_parse_and_map' will returnNO_IRQin case of failure. Unfortunately, theNO_IRQis not consistent across the different architectures and we must not rely on it.
NO_IRQis equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in case of an error. Hence, the latter won't be detected and will lead to a crash.Fix this by just checking 'irq' is different from zero.
Signed-off-by Daniel Lezcano <[email protected]>
As Per- discuss, you can free add my test tag.
Quoted 17 lines
--- drivers/clocksource/rockchip_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/clocksource/rockchip_timer.c +1
-1@@ -148,7 +148,7 @@ static void __init rk_timer_init(struct device_node *np) bc_timer.freq =clk_get_rate (timer_clk); irq =irq_of_parse_and_map (np,0 ); -if (irq ==NO_IRQ ) { +if (!irq) {pr_err ("Failed to map interrupts for '%s'\n" ,TIMER_NAME );return ; }
Signature · 2 lines
Thanks, Caesar