On Tue, Sep 17, 2013 at 06:53:09PM -0000, Thomas Gleixner wrote: > No point in having this bit defined by architecture. > > Index: linux-2.6/include/linux/preempt_mask.h > =================================================================== > --- linux-2.6.orig/include/linux/preempt_mask.h > +++ linux-2.6/include/linux/preempt_mask.h > @@ -17,10 +17,11 @@ > * there are a few palaeontologic drivers which reenable interrupts in > * the handler, so we need more than one bit here. > * > - * PREEMPT_MASK: 0x000000ff > - * SOFTIRQ_MASK: 0x0000ff00 > - * HARDIRQ_MASK: 0x000f0000 > - * NMI_MASK: 0x00100000 > + * PREEMPT_MASK: 0x000000ff > + * SOFTIRQ_MASK: 0x0000ff00 > + * HARDIRQ_MASK: 0x000f0000 > + * NMI_MASK: 0x00100000 > + * PREEMPT_ACTIVE: 0x00200000 > */ > #define PREEMPT_BITS 8 > #define SOFTIRQ_BITS 8 > @@ -46,15 +47,9 @@ > > #define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET) > > -#ifndef PREEMPT_ACTIVE > #define PREEMPT_ACTIVE_BITS 1 > #define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS) > #define PREEMPT_ACTIVE (__IRQ_MASK(PREEMPT_ACTIVE_BITS) << PREEMPT_ACTIVE_SHIFT) > -#endif > - > -#if PREEMPT_ACTIVE < (1 << (NMI_SHIFT + NMI_BITS)) > -#error PREEMPT_ACTIVE is too low! > -#endif > > #define hardirq_count() (preempt_count() & HARDIRQ_MASK) > #define softirq_count() (preempt_count() & SOFTIRQ_MASK) I get: init/init_task.c:26:4: error: ‘PREEMPT_ACTIVE’ undeclared here (not in a function) Because for some obscure reason sched.h doesn't actually include enough. The below cures things: --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -22,6 +22,7 @@ struct sched_param { #include <linux/errno.h> #include <linux/nodemask.h> #include <linux/mm_types.h> +#include <linux/preempt_mask.h> #include <asm/page.h> #include <asm/ptrace.h> -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html