Skip to contentSkip to conversation

m68knommu: convert to asm-generic/hardirq.h

PATCH In review Christoph Hellwig 2 participants 4 messages Aug 4, 2009 – Aug 5, 2009

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

PATCH 1/1 m68knommu: convert to asm-generic/hardirq.h

arch/m68k/include/asm/hardirq_no.h +3 -8
Index: linux-2.6/arch/m68k/include/asm/hardirq_no.h
===================================================================
@@ -1,16 +1,8 @@
 #ifndef __M68K_HARDIRQ_H
 #define __M68K_HARDIRQ_H
 
-#include <linux/cache.h>
-#include <linux/threads.h>
 #include <asm/irq.h>
 
-typedef struct {
-	unsigned int __softirq_pending;
-} ____cacheline_aligned irq_cpustat_t;
-
-#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
-
 #define HARDIRQ_BITS	8
 
 /*
@@ -23,5 +15,8 @@ typedef struct {
 #endif
 
 void ack_bad_irq(unsigned int irq);
+#define ack_bad_irq ack_bad_irq
+
+#include <asm-generic/hardirq.h>
 
 #endif /* __M68K_HARDIRQ_H */
arch/m68knommu/kernel/irq.c +0 -5
Index: linux-2.6/arch/m68knommu/kernel/irq.c
===================================================================
@@ -29,11 +29,6 @@ asmlinkage void do_IRQ(int irq, struct p
 	set_irq_regs(oldregs);
 }
 
-void ack_bad_irq(unsigned int irq)
-{
-	printk(KERN_ERR "IRQ: unexpected irq=%d\n", irq);
-}
-
 static struct irq_chip m_irq_chip = {
 	.name		= "M68K-INTC",
 	.enable		= enable_vector,
#1 lore raw

Hi Christoph,

Quoted 1 line · Christoph Hellwig

Thanks, I'll include that in my "for-linus" patches for the next merge window.

Regards
Greg

Quoted 47 lines

Index: linux-2.6/arch/m68k/include/asm/hardirq_no.h
===================================================================

arch/m68k/include/asm/hardirq_no.h +3 -8
@@ -1,16 +1,8 @@
 #ifndef __M68K_HARDIRQ_H
 #define __M68K_HARDIRQ_H
 
-#include <linux/cache.h>
-#include <linux/threads.h>
 #include <asm/irq.h>
 
-typedef struct {
-	unsigned int __softirq_pending;
-} ____cacheline_aligned irq_cpustat_t;
-
-#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
-
 #define HARDIRQ_BITS	8
 
 /*
@@ -23,5 +15,8 @@ typedef struct {
 #endif
 
 void ack_bad_irq(unsigned int irq);
+#define ack_bad_irq ack_bad_irq
+
+#include <asm-generic/hardirq.h>
 
 #endif /* __M68K_HARDIRQ_H */

Index: linux-2.6/arch/m68knommu/kernel/irq.c
===================================================================

arch/m68knommu/kernel/irq.c +0 -5
@@ -29,11 +29,6 @@ asmlinkage void do_IRQ(int irq, struct p
 	set_irq_regs(oldregs);
 }
 
-void ack_bad_irq(unsigned int irq)
-{
-	printk(KERN_ERR "IRQ: unexpected irq=%d\n", irq);
-}
-
 static struct irq_chip m_irq_chip = {
 	.name		= "M68K-INTC",
 	.enable		= enable_vector,
Signature · 5 lines
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     [email protected]
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
#2 lore raw
In reply to Christoph Hellwig

Hi Christoph,

Quoted 1 line · Christoph Hellwig

Compile testing revealed:

LD vmlinux
kernel/built-in.o: In function `ack_bad':
handle.c:(.text+0x215f6): undefined reference to ack_bad_irq' kernel/built-in.o: In function handle_bad_irq':
(.text+0x219dc): undefined reference to `ack_bad_irq' make[2]: *** [vmlinux] Error 1

I did this to fix it:

arch/m68k/include/asm/hardirq_no.h +0 -3
@@ -14,9 +14,6 @@
 # error HARDIRQ_BITS is too low!
 #endif
 
-void ack_bad_irq(unsigned int irq);
-#define ack_bad_irq ack_bad_irq
-
 #include <asm-generic/hardirq.h>
 
 #endif /* __M68K_HARDIRQ_H */

What do you think?

Regards
Greg

Quoted 47 lines

Index: linux-2.6/arch/m68k/include/asm/hardirq_no.h
===================================================================

arch/m68k/include/asm/hardirq_no.h +3 -8
@@ -1,16 +1,8 @@
 #ifndef __M68K_HARDIRQ_H
 #define __M68K_HARDIRQ_H
 
-#include <linux/cache.h>
-#include <linux/threads.h>
 #include <asm/irq.h>
 
-typedef struct {
-	unsigned int __softirq_pending;
-} ____cacheline_aligned irq_cpustat_t;
-
-#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
-
 #define HARDIRQ_BITS	8
 
 /*
@@ -23,5 +15,8 @@ typedef struct {
 #endif
 
 void ack_bad_irq(unsigned int irq);
+#define ack_bad_irq ack_bad_irq
+
+#include <asm-generic/hardirq.h>
 
 #endif /* __M68K_HARDIRQ_H */

Index: linux-2.6/arch/m68knommu/kernel/irq.c
===================================================================

arch/m68knommu/kernel/irq.c +0 -5
@@ -29,11 +29,6 @@ asmlinkage void do_IRQ(int irq, struct p
 	set_irq_regs(oldregs);
 }
 
-void ack_bad_irq(unsigned int irq)
-{
-	printk(KERN_ERR "IRQ: unexpected irq=%d\n", irq);
-}
-
 static struct irq_chip m_irq_chip = {
 	.name		= "M68K-INTC",
 	.enable		= enable_vector,
Signature · 5 lines
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     [email protected]
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
#3 lore raw
Quoted 20 lines · Greg Ungerer

Hi Christoph,

Quoted 1 line · Christoph Hellwig

Compile testing revealed:

LD vmlinux
kernel/built-in.o: In function `ack_bad':
handle.c:(.text+0x215f6): undefined reference to ack_bad_irq' kernel/built-in.o: In function handle_bad_irq':
(.text+0x219dc): undefined reference to `ack_bad_irq' make[2]: *** [vmlinux] Error 1

I did this to fix it:

arch/m68k/include/asm/hardirq_no.h line 19

Quoted 6 lines
arch/m68k/include/asm/hardirq_no.h +0 -3
@@ -14,9 +14,6 @@
 # error HARDIRQ_BITS is too low!
 #endif
 
-void ack_bad_irq(unsigned int irq);
-#define ack_bad_irq ack_bad_irq
-

Sorry. Yeah, m68knommu should use the default ack_bad_irq.