3b8fad3e2f
asm-generic/hardirq.h needs asm/irq.h which might include linux/interrupt.h as in the sparc 32 case. At this point we need irq_cpustat generic definitions, but those are included later in asm-generic/hardirq.h. Then delay a bit the inclusion of irq.h from asm-generic/hardirq.h, it doesn't need to be included early. This fixes: include/linux/interrupt.h: In function '__raise_softirq_irqoff': include/linux/interrupt.h:414: error: implicit declaration of function 'local_softirq_pending' include/linux/interrupt.h:414: error: lvalue required as left operand of assignment Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Lai Jiangshan <laijs@cn.fujitsu.com> Cc: Koki Sanagi <sanagi.koki@jp.fujitsu.com> Cc: mathieu.desnoyers@efficios.com Cc: rostedt@goodmis.org Cc: nhorman@tuxdriver.com Cc: scott.a.mcmillan@intel.com Cc: eric.dumazet@gmail.com Cc: kaneshige.kenji@jp.fujitsu.com Cc: davem@davemloft.net Cc: izumi.taku@jp.fujitsu.com Cc: kosaki.motohiro@jp.fujitsu.com LKML-Reference: <20100908122557.GA5310@nowhere> Signed-off-by: Ingo Molnar <mingo@elte.hu>
21 lines
493 B
C
21 lines
493 B
C
#ifndef __ASM_GENERIC_HARDIRQ_H
|
|
#define __ASM_GENERIC_HARDIRQ_H
|
|
|
|
#include <linux/cache.h>
|
|
#include <linux/threads.h>
|
|
|
|
typedef struct {
|
|
unsigned int __softirq_pending;
|
|
} ____cacheline_aligned irq_cpustat_t;
|
|
|
|
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
|
|
#include <linux/irq.h>
|
|
|
|
#ifndef ack_bad_irq
|
|
static inline void ack_bad_irq(unsigned int irq)
|
|
{
|
|
printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
|
|
}
|
|
#endif
|
|
|
|
#endif /* __ASM_GENERIC_HARDIRQ_H */
|