Skip to contentSkip to conversation

the wrong variable checked after request_irq()

PATCH In review Al Viro 2 participants 4 messages Jul 15, 2007 PowerPC

lore
Share & tools
lore

Al Viro

author
#0 lore raw

PATCH 1/1 the wrong variable checked after request_irq()

---
 arch/powerpc/platforms/pseries/setup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/powerpc/platforms/pseries/setup.c +1 -1
index 470db6e..a031d99 100644
@@ -176,7 +176,7 @@ static void __init pseries_mpic_init_IRQ(void)
 		return;
 
 	cascade_irq = irq_of_parse_and_map(cascade, 0);
-	if (cascade == NO_IRQ) {
+	if (cascade_irq == NO_IRQ) {
 		printk(KERN_ERR "mpic: failed to map cascade interrupt");
 		return;
 	}
Signature · 1 line
1.5.3.GIT
Acked-by on v1 1/1
#1 lore raw
Quoted 1 line · Al Viro

Out of curiosity, how did you pick it up ? You have some automated tool to catch that (or sparse changes) or you just did -lots- of code inspection ?

Cheers,
Ben.

Quoted 17 lines
---
 arch/powerpc/platforms/pseries/setup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/powerpc/platforms/pseries/setup.c +1 -1
index 470db6e..a031d99 100644
@@ -176,7 +176,7 @@ static void __init pseries_mpic_init_IRQ(void)
 		return;
 
 	cascade_irq = irq_of_parse_and_map(cascade, 0);
-	if (cascade == NO_IRQ) {
+	if (cascade_irq == NO_IRQ) {
 		printk(KERN_ERR "mpic: failed to map cascade interrupt");
 		return;
 	}
author
#2 lore raw
Quoted 8 lines · Benjamin Herrenschmidt
Quoted 1 line · Al Viro

Out of curiosity, how did you pick it up ? You have some automated tool to catch that (or sparse changes) or you just did -lots- of code inspection ?

While testing sparse changes, actually (comparing pointers to null pointer constant spelled without a cast to void *)... That gave several hundred hits, most of them being immediately obvious (picking the lines by file and line number and looking through the list had eliminated all but about a dozen or two). Several were not...

#3 lore raw
Quoted 10 lines · Al Viro
Quoted 8 lines · Benjamin Herrenschmidt
Quoted 1 line · Al Viro

Out of curiosity, how did you pick it up ? You have some automated tool to catch that (or sparse changes) or you just did -lots- of code inspection ?

Quoted 5 lines

While testing sparse changes, actually (comparing pointers to null pointer constant spelled without a cast to void *)... That gave several hundred hits, most of them being immediately obvious (picking the lines by file and line number and looking through the list had eliminated all but about a dozen or two). Several were not...

Ok. In fact, it would have been nice if gcc had been able to pick it up for another reason. The old code is:

	if (cascade == NULL)
		return;

	cascade_irq = irq_of_parse_and_map(cascade, 0);
	if (cascade == NO_IRQ) {
		printk(KERN_ERR "mpic: failed to map cascade interrupt");
		return;
	}

And NO_IRQ is 0 on powerpc nowadays. Thus the test can never be true :-)

But it looks like gcc doesn't pick that up.

Ben.