Skip to content

Commit f3643b5

Browse files
committed
Merge back cpuidle material for 5.10.
2 parents f49735f + 9559212 commit f3643b5

4 files changed

Lines changed: 5 additions & 12 deletions

File tree

drivers/acpi/processor_idle.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) { }
176176
static bool lapic_timer_needs_broadcast(struct acpi_processor *pr,
177177
struct acpi_processor_cx *cx)
178178
{
179+
return false;
179180
}
180181

181182
#endif

drivers/cpuidle/cpuidle-psci.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ static int psci_enter_domain_idle_state(struct cpuidle_device *dev,
6666
return -1;
6767

6868
/* Do runtime PM to manage a hierarchical CPU toplogy. */
69-
pm_runtime_put_sync_suspend(pd_dev);
69+
RCU_NONIDLE(pm_runtime_put_sync_suspend(pd_dev));
7070

7171
state = psci_get_domain_state();
7272
if (!state)
7373
state = states[idx];
7474

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

77-
pm_runtime_get_sync(pd_dev);
77+
RCU_NONIDLE(pm_runtime_get_sync(pd_dev));
7878

7979
cpu_pm_exit();
8080

drivers/cpuidle/cpuidle.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,6 @@ static void enter_s2idle_proper(struct cpuidle_driver *drv,
142142

143143
time_start = ns_to_ktime(local_clock());
144144

145-
/*
146-
* trace_suspend_resume() called by tick_freeze() for the last CPU
147-
* executing it contains RCU usage regarded as invalid in the idle
148-
* context, so tell RCU about that.
149-
*/
150145
tick_freeze();
151146
/*
152147
* 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,
159154
target_state->enter_s2idle(dev, drv, index);
160155
if (WARN_ON_ONCE(!irqs_disabled()))
161156
local_irq_disable();
162-
/*
163-
* timekeeping_resume() that will be called by tick_unfreeze() for the
164-
* first CPU executing it calls functions containing RCU read-side
165-
* critical sections, so tell RCU about that.
166-
*/
167157
if (!(target_state->flags & CPUIDLE_FLAG_RCU_IDLE))
168158
rcu_idle_exit();
169159
tick_unfreeze();

kernel/rcu/tree.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ void rcu_idle_enter(void)
673673
lockdep_assert_irqs_disabled();
674674
rcu_eqs_enter(false);
675675
}
676+
EXPORT_SYMBOL_GPL(rcu_idle_enter);
676677

677678
#ifdef CONFIG_NO_HZ_FULL
678679
/**
@@ -886,6 +887,7 @@ void rcu_idle_exit(void)
886887
rcu_eqs_exit(false);
887888
local_irq_restore(flags);
888889
}
890+
EXPORT_SYMBOL_GPL(rcu_idle_exit);
889891

890892
#ifdef CONFIG_NO_HZ_FULL
891893
/**

0 commit comments

Comments
 (0)