]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - kernel/rcu/tree_plugin.h
rcu: Don't deboost before reporting expedited quiescent state
[mirror_ubuntu-jammy-kernel.git] / kernel / rcu / tree_plugin.h
index 0d21a5cdc7247c80fe777251d21a4ea71c0d4e4b..ef2dd131e95535971fc94d0c974582218c7dc44d 100644 (file)
@@ -554,16 +554,16 @@ rcu_preempt_deferred_qs_irqrestore(struct task_struct *t, unsigned long flags)
                        raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
                }
 
-               /* Unboost if we were boosted. */
-               if (IS_ENABLED(CONFIG_RCU_BOOST) && drop_boost_mutex)
-                       rt_mutex_futex_unlock(&rnp->boost_mtx.rtmutex);
-
                /*
                 * If this was the last task on the expedited lists,
                 * then we need to report up the rcu_node hierarchy.
                 */
                if (!empty_exp && empty_exp_now)
                        rcu_report_exp_rnp(rnp, true);
+
+               /* Unboost if we were boosted. */
+               if (IS_ENABLED(CONFIG_RCU_BOOST) && drop_boost_mutex)
+                       rt_mutex_futex_unlock(&rnp->boost_mtx.rtmutex);
        } else {
                local_irq_restore(flags);
        }