Skip to contentSkip to conversation

genirq: export handle_bad_irq

PATCH In review Arnd Bergmann 4 participants 6 messages Oct 6, 2015 – Oct 9, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 genirq: export handle_bad_irq

A cleanup of the omap gpio driver introduced a use of the handle_bad_irq() function in a device driver that can be a loadable module.

This broke the ARM allmodconfig build:

ERROR: "handle_bad_irq" [drivers/gpio/gpio-omap.ko] undefined!

This patch exports the handle_bad_irq symbol in order to allow the use in modules.

Fixes 450fa54cfd66 ("gpio: omap: convert to use generic irq handler")
kernel/irq/handle.c +1 -0
index ea7b5fd99ba5..142bbf3b607f 100644
@@ -35,6 +35,7 @@ void handle_bad_irq(struct irq_desc *desc)
 	kstat_incr_irqs_this_cpu(desc);
 	ack_bad_irq(irq);
 }
+EXPORT_SYMBOL_GPL(handle_bad_irq);
 
 /*
  * Special, empty irq handler:
#1 lore raw
reproduce: make htmldocs

Hi Arnd,

[auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please ignore]

reproduce: make htmldocs

All warnings (new ones prefixed by >>):

kernel/irq/handle.c:31: warning: Excess function parameter 'irq' description in 'handle_bad_irq'

>> kernel/irq/handle.c:1: warning: no structured comments found

vim +1 kernel/irq/handle.c

^1da177e Linus Torvalds     2005-04-16  @1  /*
^1da177e Linus Torvalds     2005-04-16   2   * linux/kernel/irq/handle.c
^1da177e Linus Torvalds     2005-04-16   3   *
a34db9b2 Ingo Molnar        2006-06-29   4   * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
a34db9b2 Ingo Molnar        2006-06-29   5   * Copyright (C) 2005-2006, Thomas Gleixner, Russell King
^1da177e Linus Torvalds     2005-04-16   6   *
^1da177e Linus Torvalds     2005-04-16   7   * This file contains the core interrupt handling code.
a34db9b2 Ingo Molnar        2006-06-29   8   *
a34db9b2 Ingo Molnar        2006-06-29   9   * Detailed information is available in Documentation/DocBook/genericirq
a34db9b2 Ingo Molnar        2006-06-29  10   *
^1da177e Linus Torvalds     2005-04-16  11   */
^1da177e Linus Torvalds     2005-04-16  12  
^1da177e Linus Torvalds     2005-04-16  13  #include <linux/irq.h>
^1da177e Linus Torvalds     2005-04-16  14  #include <linux/random.h>
3795de23 Thomas Gleixner    2010-09-22  15  #include <linux/sched.h>
^1da177e Linus Torvalds     2005-04-16  16  #include <linux/interrupt.h>
^1da177e Linus Torvalds     2005-04-16  17  #include <linux/kernel_stat.h>
3795de23 Thomas Gleixner    2010-09-22  18  
ad8d75ff Steven Rostedt     2009-04-14  19  #include <trace/events/irq.h>
^1da177e Linus Torvalds     2005-04-16  20  
^1da177e Linus Torvalds     2005-04-16  21  #include "internals.h"
^1da177e Linus Torvalds     2005-04-16  22  
6a6de9ef Thomas Gleixner    2006-06-29  23  /**
6a6de9ef Thomas Gleixner    2006-06-29  24   * handle_bad_irq - handle spurious and unhandled irqs
43a1dd50 Henrik Kretzschmar 2006-08-31  25   * @irq:       the interrupt number
43a1dd50 Henrik Kretzschmar 2006-08-31  26   * @desc:      description of the interrupt
43a1dd50 Henrik Kretzschmar 2006-08-31  27   *
43a1dd50 Henrik Kretzschmar 2006-08-31  28   * Handles spurious and unhandled IRQ's. It also prints a debugmessage.
6a6de9ef Thomas Gleixner    2006-06-29  29   */
bd0b9ac4 Thomas Gleixner    2015-09-14  30  void handle_bad_irq(struct irq_desc *desc)
6a6de9ef Thomas Gleixner    2006-06-29 @31  {
bd0b9ac4 Thomas Gleixner    2015-09-14  32  	unsigned int irq = irq_desc_get_irq(desc);
bd0b9ac4 Thomas Gleixner    2015-09-14  33  
43f77759 Ingo Molnar        2006-06-29  34  	print_irq_desc(irq, desc);

:::::: The code at line 1 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <[email protected]> :::::: CC: Linus Torvalds <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

#2 lore raw

PATCH 1/1 genirq: fix handle_bad_irq kerneldoc comment

A recent cleanup removed the 'irq' parameter from many functions, but left the documentation for this in place for at least one function.

This removes it.

Fixes bd0b9ac405e1 ("genirq: Remove irq argument from irq flow handlers")

---

Quoted 8 lines · On Wednesday 07 October 2015 04:51:56 kbuild test robot wrote:

[auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please ignore]

reproduce: make htmldocs

All warnings (new ones prefixed by >>):

kernel/irq/handle.c:31: warning: Excess function parameter 'irq' description in 'handle_bad_irq'

Quoted 1 line
Quoted 1 line

kernel/irq/handle.c:1: warning: no structured comments found

This seems to be an unrelated bug, not sure why it wasn't caught earlier:

kernel/irq/handle.c +0 -1
index 142bbf3b607f..a302cf9a2126 100644
@@ -22,7 +22,6 @@
 
 /**
  * handle_bad_irq - handle spurious and unhandled irqs
- * @irq:       the interrupt number
  * @desc:      description of the interrupt
  *
  * Handles spurious and unhandled IRQ's. It also prints a debugmessage.
Tested-by on v1 1/1
#4 lore raw
In reply to Arnd Bergmann

Hi Arnd,

Quoted 11 lines · Arnd Bergmann

A cleanup of the omap gpio driver introduced a use of the handle_bad_irq() function in a device driver that can be a loadable module.

This broke the ARM allmodconfig build:

ERROR: "handle_bad_irq" [drivers/gpio/gpio-omap.ko] undefined!

This patch exports the handle_bad_irq symbol in order to allow the use in modules.

Thanks for fixing it and sorry for the mess.

Quoted 16 lines
Fixes 450fa54cfd66 ("gpio: omap: convert to use generic irq handler")
kernel/irq/handle.c +1 -0
index ea7b5fd99ba5..142bbf3b607f 100644
@@ -35,6 +35,7 @@ void handle_bad_irq(struct irq_desc *desc)
  	kstat_incr_irqs_this_cpu(desc);
  	ack_bad_irq(irq);
  }
+EXPORT_SYMBOL_GPL(handle_bad_irq);
 
  /*
   * Special, empty irq handler:
Signature · 2 lines
regards,
-grygorii
#5 lore raw

[tip:irq/urgent] genirq: Export handle_bad_irq

In reply to Arnd Bergmann
genirq: Export handle_bad_irq
Commit-ID:  9d67dc5da59d63f746aad8f6ec4fbb86d6486f76
Gitweb:     http://git.kernel.org/tip/9d67dc5da59d63f746aad8f6ec4fbb86d6486f76
Author:     Arnd Bergmann <[email protected]>
AuthorDate: Tue, 6 Oct 2015 22:24:50 +0200
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Fri, 9 Oct 2015 17:17:30 +0200

genirq: Export handle_bad_irq

A cleanup of the omap gpio driver introduced a use of the handle_bad_irq() function in a device driver that can be a loadable module.

This broke the ARM allmodconfig build:

ERROR: "handle_bad_irq" [drivers/gpio/gpio-omap.ko] undefined!

This patch exports the handle_bad_irq symbol in order to allow the use in modules.

---
 kernel/irq/handle.c | 1 +
 1 file changed, 1 insertion(+)
kernel/irq/handle.c +1 -0
index de41a68..77983fc 100644
@@ -35,6 +35,7 @@ void handle_bad_irq(struct irq_desc *desc)
 	kstat_incr_irqs_this_cpu(desc);
 	ack_bad_irq(irq);
 }
+EXPORT_SYMBOL_GPL(handle_bad_irq);
 
 /*
  * Special, empty irq handler:
#3 lore raw

[tip:irq/urgent] genirq: Fix handle_bad_irq kerneldoc comment

In reply to Arnd Bergmann
genirq: Fix handle_bad_irq kerneldoc comment
Commit-ID:  e3096c9c7c645279808a6bf7ac2031b1895ddffb
Gitweb:     http://git.kernel.org/tip/e3096c9c7c645279808a6bf7ac2031b1895ddffb
Author:     Arnd Bergmann <[email protected]>
AuthorDate: Tue, 6 Oct 2015 22:59:40 +0200
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Fri, 9 Oct 2015 17:17:30 +0200

genirq: Fix handle_bad_irq kerneldoc comment

A recent cleanup removed the 'irq' parameter from many functions, but left the documentation for this in place for at least one function.

This removes it.

Fixes bd0b9ac405e1 ("genirq: Remove irq argument from irq flow handlers")
Cc Grygorii Strashko <[email protected]>
Cc Tony Lindgren <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Austin Schuh <[email protected]>
Cc Santosh Shilimkar <[email protected]>
---
 kernel/irq/handle.c | 1 -
 1 file changed, 1 deletion(-)
kernel/irq/handle.c +0 -1
index 77983fc..e25a83b 100644
@@ -22,7 +22,6 @@
 
 /**
  * handle_bad_irq - handle spurious and unhandled irqs
- * @irq:       the interrupt number
  * @desc:      description of the interrupt
  *
  * Handles spurious and unhandled IRQ's. It also prints a debugmessage.