| From foo@baz Sun Jun 17 12:07:34 CEST 2018 |
| From: Tero Kristo <t-kristo@ti.com> |
| Date: Fri, 9 Mar 2018 11:50:20 +0200 |
| Subject: ARM: OMAP2+: powerdomain: use raw_smp_processor_id() for trace |
| |
| From: Tero Kristo <t-kristo@ti.com> |
| |
| [ Upstream commit 33e9572483031a79ad0a4468064675144d9269ec ] |
| |
| smp_processor_id() checks preemption if CONFIG_DEBUG_PREEMPT is enabled, |
| causing a warning dump during boot: |
| |
| [ 5.042377] BUG: using smp_processor_id() in preemptible [00000000] code: swapper/0/1 |
| [ 5.050281] caller is pwrdm_set_next_pwrst+0x48/0x88 |
| [ 5.055330] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.14.24-g57341df0b4 #1 |
| |
| Use the raw_smp_processor_id() for the trace instead, this value does |
| not need to be perfectly correct. The alternative of disabling preempt |
| is too heavy weight operation to be applied in PM hot path for just |
| tracing purposes. |
| |
| Signed-off-by: Tero Kristo <t-kristo@ti.com> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/arm/mach-omap2/powerdomain.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/arch/arm/mach-omap2/powerdomain.c |
| +++ b/arch/arm/mach-omap2/powerdomain.c |
| @@ -188,7 +188,7 @@ static int _pwrdm_state_switch(struct po |
| ((prev & OMAP_POWERSTATE_MASK) << 0)); |
| trace_power_domain_target_rcuidle(pwrdm->name, |
| trace_state, |
| - smp_processor_id()); |
| + raw_smp_processor_id()); |
| } |
| break; |
| default: |
| @@ -518,7 +518,7 @@ int pwrdm_set_next_pwrst(struct powerdom |
| if (arch_pwrdm && arch_pwrdm->pwrdm_set_next_pwrst) { |
| /* Trace the pwrdm desired target state */ |
| trace_power_domain_target_rcuidle(pwrdm->name, pwrst, |
| - smp_processor_id()); |
| + raw_smp_processor_id()); |
| /* Program the pwrdm desired target state */ |
| ret = arch_pwrdm->pwrdm_set_next_pwrst(pwrdm, pwrst); |
| } |