diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hardirq.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 7969257bc87a..eae45cc3ea7a 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -5,39 +5,39 @@ #include <linux/smp_lock.h> #include <asm/hardirq.h> -#ifdef CONFIG_GENERIC_HARDIRQS /* * We put the hardirq and softirq counter into the preemption * counter. The bitmask has the following meaning: * * - bits 0-7 are the preemption count (max preemption depth: 256) * - bits 8-15 are the softirq count (max # of softirqs: 256) - * - bits 16-27 are the hardirq count (max # of hardirqs: 4096) * + * The hardirq count can be overridden per architecture, the default is: + * + * - bits 16-27 are the hardirq count (max # of hardirqs: 4096) * - ( bit 28 is the PREEMPT_ACTIVE flag. ) * * PREEMPT_MASK: 0x000000ff * SOFTIRQ_MASK: 0x0000ff00 * HARDIRQ_MASK: 0x0fff0000 */ - #define PREEMPT_BITS 8 #define SOFTIRQ_BITS 8 -#define HARDIRQ_BITS 12 - -#define PREEMPT_SHIFT 0 -#define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS) -#define HARDIRQ_SHIFT (SOFTIRQ_SHIFT + SOFTIRQ_BITS) +#ifndef HARDIRQ_BITS +#define HARDIRQ_BITS 12 /* - * The hardirq mask has to be large enough to have - * space for potentially all IRQ sources in the system - * nesting on a single CPU: + * The hardirq mask has to be large enough to have space for potentially + * all IRQ sources in the system nesting on a single CPU. */ #if (1 << HARDIRQ_BITS) < NR_IRQS # error HARDIRQ_BITS is too low! #endif -#endif /* CONFIG_GENERIC_HARDIRQS */ +#endif + +#define PREEMPT_SHIFT 0 +#define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS) +#define HARDIRQ_SHIFT (SOFTIRQ_SHIFT + SOFTIRQ_BITS) #define __IRQ_MASK(x) ((1UL << (x))-1) |
