SOFTIRQ_OFFSET
#define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
# define in_task() (!(preempt_count() & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET)))
#define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
level += !!(pc & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET));
vtime_account_irq(tsk, SOFTIRQ_OFFSET);
irqtime_account_irq(tsk, SOFTIRQ_OFFSET);
} else if (pc & SOFTIRQ_OFFSET) {
else if ((pc & SOFTIRQ_OFFSET) && curr != this_cpu_ksoftirqd())
cnt = SOFTIRQ_OFFSET;
__local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET);
__local_bh_enable(SOFTIRQ_OFFSET, true);
__local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET);
__local_bh_enable(SOFTIRQ_OFFSET);
if (pc & SOFTIRQ_OFFSET)
return (pcnt & SOFTIRQ_MASK) & SOFTIRQ_OFFSET;
return (tsk->softirq_disable_cnt & SOFTIRQ_MASK) & SOFTIRQ_OFFSET;
return !(pcnt & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET));
((tsk->softirq_disable_cnt & SOFTIRQ_MASK) & SOFTIRQ_OFFSET));