Commit 924aed16 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

cpuidle, cpu_pm: Remove RCU fiddling from cpu_pm_{enter,exit}()

parent a01353cf
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -30,16 +30,9 @@ static int cpu_pm_notify(enum cpu_pm_event event)
{
	int ret;

	/*
	 * This introduces a RCU read critical section, which could be
	 * disfunctional in cpu idle. Copy RCU_NONIDLE code to let RCU know
	 * this.
	 */
	ct_irq_enter_irqson();
	rcu_read_lock();
	ret = raw_notifier_call_chain(&cpu_pm_notifier.chain, event, NULL);
	rcu_read_unlock();
	ct_irq_exit_irqson();

	return notifier_to_errno(ret);
}
@@ -49,11 +42,9 @@ static int cpu_pm_notify_robust(enum cpu_pm_event event_up, enum cpu_pm_event ev
	unsigned long flags;
	int ret;

	ct_irq_enter_irqson();
	raw_spin_lock_irqsave(&cpu_pm_notifier.lock, flags);
	ret = raw_notifier_call_chain_robust(&cpu_pm_notifier.chain, event_up, event_down, NULL);
	raw_spin_unlock_irqrestore(&cpu_pm_notifier.lock, flags);
	ct_irq_exit_irqson();

	return notifier_to_errno(ret);
}