Skip to content

Commit 4b56b0f

Browse files
committed
srcu: Disable interrupts directly in srcu_gp_end()
Interrupts are enabled in srcu_gp_end(), so this commit switches from spin_lock_irqsave_rcu_node() and spin_unlock_irqrestore_rcu_node() to spin_lock_irq_rcu_node() and spin_unlock_irq_rcu_node(). Link: https://lore.kernel.org/all/[email protected]/ Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Paul E. McKenney <[email protected]>
1 parent 51cace1 commit 4b56b0f

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

kernel/rcu/srcutree.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,6 @@ static void srcu_gp_end(struct srcu_struct *ssp)
845845
bool cbs;
846846
bool last_lvl;
847847
int cpu;
848-
unsigned long flags;
849848
unsigned long gpseq;
850849
int idx;
851850
unsigned long mask;
@@ -907,12 +906,12 @@ static void srcu_gp_end(struct srcu_struct *ssp)
907906
if (!(gpseq & counter_wrap_check))
908907
for_each_possible_cpu(cpu) {
909908
sdp = per_cpu_ptr(ssp->sda, cpu);
910-
spin_lock_irqsave_rcu_node(sdp, flags);
909+
spin_lock_irq_rcu_node(sdp);
911910
if (ULONG_CMP_GE(gpseq, sdp->srcu_gp_seq_needed + 100))
912911
sdp->srcu_gp_seq_needed = gpseq;
913912
if (ULONG_CMP_GE(gpseq, sdp->srcu_gp_seq_needed_exp + 100))
914913
sdp->srcu_gp_seq_needed_exp = gpseq;
915-
spin_unlock_irqrestore_rcu_node(sdp, flags);
914+
spin_unlock_irq_rcu_node(sdp);
916915
}
917916

918917
/* Callback initiation done, allow grace periods after next. */

0 commit comments

Comments
 (0)