mirror of
https://github.com/torvalds/linux.git
synced 2026-09-11 20:13:02 +02:00
preempt: Remove hardirq_disable_count()
It turns out the previous usage of hardirq_disable_count() in __irq_exit_rcu() would cause softirq pending issues. Without that usage, hardirq_disable_count() doesn't need to exist, so remove it. Also move hardirq_disable_enter/exit() into the Rust specific interrupt_rc header. [ tglx: Move the helpers over ] Signed-off-by: Boqun Feng <boqun@kernel.org> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260827194835.38968-1-boqun@kernel.org
This commit is contained in:
parent
a155ac8f0c
commit
2af470916a
|
|
@ -52,6 +52,9 @@ extern void _local_interrupt_save_state(unsigned long flags);
|
|||
extern void _local_interrupt_enable(void);
|
||||
#endif /* !MODULE */
|
||||
|
||||
#define hardirq_disable_enter() __preempt_count_add_return(HARDIRQ_DISABLE_OFFSET)
|
||||
#define hardirq_disable_exit() __preempt_count_sub_return(HARDIRQ_DISABLE_OFFSET)
|
||||
|
||||
static inline void local_interrupt_disable(void)
|
||||
{
|
||||
int new_count;
|
||||
|
|
|
|||
|
|
@ -168,10 +168,6 @@ static __always_inline unsigned char interrupt_context_level(void)
|
|||
#define in_softirq() (softirq_count())
|
||||
#define in_interrupt() (irq_count())
|
||||
|
||||
#define hardirq_disable_count() ((preempt_count() & HARDIRQ_DISABLE_MASK) >> HARDIRQ_DISABLE_SHIFT)
|
||||
#define hardirq_disable_enter() __preempt_count_add_return(HARDIRQ_DISABLE_OFFSET)
|
||||
#define hardirq_disable_exit() __preempt_count_sub_return(HARDIRQ_DISABLE_OFFSET)
|
||||
|
||||
/*
|
||||
* The preempt_count offset after preempt_disable();
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user