[patch 1/4] acpi: acpi_cpu_soft_notify() not getting called on resume

From: Venkatesh Pallipadi
Date: Thu Jan 14 2010 - 20:53:47 EST


acpi_cpu_soft_notify() seems to be calling ppc, cst and tstate routines
only on CPU_ONLINE and not on CPU_ONLINE_FROZEN, which means these
routines are getting called on logical CPU offline-online but not
getting called for any non-boot CPUs during suspend-resume.

One side effect of this that I noticed is that,
tick_broadcast_mask changes from 0000000f to 00000001 after
suspend-resume. I haven't seen any functionality issue with this. But,
seems wrong. I am not sure whether this can result in any other
bugs/issues. But, here is the fix.

This patch is a pre-requisite for followup patches that tries to fix
clockevent source ratings.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>
---
drivers/acpi/processor_core.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 9863c98..4513395 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -695,7 +695,7 @@ static int acpi_cpu_soft_notify(struct notifier_block *nfb,
unsigned int cpu = (unsigned long)hcpu;
struct acpi_processor *pr = per_cpu(processors, cpu);

- if (action == CPU_ONLINE && pr) {
+ if ((action == CPU_ONLINE || action == CPU_ONLINE_FROZEN) && pr) {
acpi_processor_ppc_has_changed(pr, 0);
acpi_processor_cst_has_changed(pr);
acpi_processor_tstate_has_changed(pr);
--
1.6.0.6

--

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/