Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.15 38 lines 1.1 kB view raw
1#ifndef __ASM_HARDIRQ_H 2#define __ASM_HARDIRQ_H 3 4#include <linux/config.h> 5#include <linux/threads.h> 6#include <linux/irq.h> 7#include <asm/pda.h> 8#include <asm/apic.h> 9 10#define __ARCH_IRQ_STAT 1 11 12#define local_softirq_pending() read_pda(__softirq_pending) 13 14#define __ARCH_SET_SOFTIRQ_PENDING 1 15 16#define set_softirq_pending(x) write_pda(__softirq_pending, (x)) 17#define or_softirq_pending(x) or_pda(__softirq_pending, (x)) 18 19/* 20 * 'what should we do if we get a hw irq event on an illegal vector'. 21 * each architecture has to answer this themselves. 22 */ 23static inline void ack_bad_irq(unsigned int irq) 24{ 25 printk("unexpected IRQ trap at vector %02x\n", irq); 26#ifdef CONFIG_X86_LOCAL_APIC 27 /* 28 * Currently unexpected vectors happen only on SMP and APIC. 29 * We _must_ ack these because every local APIC has only N 30 * irq slots per priority level, and a 'hanging, unacked' IRQ 31 * holds up an irq slot - in excessive cases (when multiple 32 * unexpected vectors occur) that might lock up the APIC 33 * completely. 34 */ 35 ack_APIC_irq(); 36#endif 37} 38#endif /* __ASM_HARDIRQ_H */