SOFTIRQ_MASK
(irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) |
(curctx->tinfo.preempt_count & SOFTIRQ_MASK);
# define softirq_count() (current->softirq_disable_cnt & SOFTIRQ_MASK)
# define softirq_count() (preempt_count() & SOFTIRQ_MASK)
# define irq_count() (preempt_count() & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_MASK))
if (!(preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK)) ||
bool preempt_bh_enabled = !(preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK));
!!(preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK));
(preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK))) {
if (softirq_count() == (cnt & SOFTIRQ_MASK))
if (softirq_count() == (cnt & SOFTIRQ_MASK))
return pcnt & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_MASK);
(tsk->softirq_disable_cnt & SOFTIRQ_MASK);
return (pcnt & SOFTIRQ_MASK) & SOFTIRQ_OFFSET;
return (tsk->softirq_disable_cnt & SOFTIRQ_MASK) & SOFTIRQ_OFFSET;
((tsk->softirq_disable_cnt & SOFTIRQ_MASK) & SOFTIRQ_OFFSET));