Commit f3643b5b authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge back cpuidle material for 5.10.

parents f49735f4 95592128
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@ static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) { }
static bool lapic_timer_needs_broadcast(struct acpi_processor *pr,
					struct acpi_processor_cx *cx)
{
	return false;
}

#endif
+2 −2
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ static int psci_enter_domain_idle_state(struct cpuidle_device *dev,
		return -1;

	/* Do runtime PM to manage a hierarchical CPU toplogy. */
	pm_runtime_put_sync_suspend(pd_dev);
	RCU_NONIDLE(pm_runtime_put_sync_suspend(pd_dev));

	state = psci_get_domain_state();
	if (!state)
@@ -74,7 +74,7 @@ static int psci_enter_domain_idle_state(struct cpuidle_device *dev,

	ret = psci_cpu_suspend_enter(state) ? -1 : idx;

	pm_runtime_get_sync(pd_dev);
	RCU_NONIDLE(pm_runtime_get_sync(pd_dev));

	cpu_pm_exit();

+0 −10
Original line number Diff line number Diff line
@@ -142,11 +142,6 @@ static void enter_s2idle_proper(struct cpuidle_driver *drv,

	time_start = ns_to_ktime(local_clock());

	/*
	 * trace_suspend_resume() called by tick_freeze() for the last CPU
	 * executing it contains RCU usage regarded as invalid in the idle
	 * context, so tell RCU about that.
	 */
	tick_freeze();
	/*
	 * The state used here cannot be a "coupled" one, because the "coupled"
@@ -159,11 +154,6 @@ static void enter_s2idle_proper(struct cpuidle_driver *drv,
	target_state->enter_s2idle(dev, drv, index);
	if (WARN_ON_ONCE(!irqs_disabled()))
		local_irq_disable();
	/*
	 * timekeeping_resume() that will be called by tick_unfreeze() for the
	 * first CPU executing it calls functions containing RCU read-side
	 * critical sections, so tell RCU about that.
	 */
	if (!(target_state->flags & CPUIDLE_FLAG_RCU_IDLE))
		rcu_idle_exit();
	tick_unfreeze();
+2 −0
Original line number Diff line number Diff line
@@ -673,6 +673,7 @@ void rcu_idle_enter(void)
	lockdep_assert_irqs_disabled();
	rcu_eqs_enter(false);
}
EXPORT_SYMBOL_GPL(rcu_idle_enter);

#ifdef CONFIG_NO_HZ_FULL
/**
@@ -886,6 +887,7 @@ void rcu_idle_exit(void)
	rcu_eqs_exit(false);
	local_irq_restore(flags);
}
EXPORT_SYMBOL_GPL(rcu_idle_exit);

#ifdef CONFIG_NO_HZ_FULL
/**