 3b8fad3e2f
			
		
	
	
	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 */
 |