diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index d2242679239e..a7aa4f31c0e2 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1696,6 +1696,7 @@ static inline void rq_lock(struct rq *rq, struct rq_flags *rf) __acquires(rq->lock) { + local_irq_save(rf->flags); raw_spin_rq_lock(rq); rq_pin_lock(rq, rf); } @@ -1722,6 +1723,7 @@ rq_unlock(struct rq *rq, struct rq_flags *rf) { rq_unpin_lock(rq, rf); raw_spin_rq_unlock(rq); + local_irq_restore(rf->flags); } DEFINE_LOCK_GUARD_1(rq_lock, struct rq,