Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ACPI: Reevaluate C/P/T states when a cpu becomes online

Reevaluate C/P/T states when a cpu becomes online. This avoids
the caching of the broadcast information in the clockevents layer.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Len Brown <len.brown@intel.com>

authored by

Venkatesh Pallipadi and committed by
Thomas Gleixner
729c6ba3 6a669ee8

+21
+21
drivers/acpi/processor_core.c
··· 724 724 return; 725 725 } 726 726 727 + static int acpi_cpu_soft_notify(struct notifier_block *nfb, 728 + unsigned long action, void *hcpu) 729 + { 730 + unsigned int cpu = (unsigned long)hcpu; 731 + struct acpi_processor *pr = processors[cpu]; 732 + 733 + if (action == CPU_ONLINE && pr) { 734 + acpi_processor_ppc_has_changed(pr); 735 + acpi_processor_cst_has_changed(pr); 736 + acpi_processor_tstate_has_changed(pr); 737 + } 738 + return NOTIFY_OK; 739 + } 740 + 741 + static struct notifier_block acpi_cpu_notifier = 742 + { 743 + .notifier_call = acpi_cpu_soft_notify, 744 + }; 745 + 727 746 static int acpi_processor_add(struct acpi_device *device) 728 747 { 729 748 struct acpi_processor *pr = NULL; ··· 1006 987 ACPI_UINT32_MAX, 1007 988 processor_walk_namespace_cb, &action, NULL); 1008 989 #endif 990 + register_hotcpu_notifier(&acpi_cpu_notifier); 1009 991 } 1010 992 1011 993 static ··· 1019 999 ACPI_UINT32_MAX, 1020 1000 processor_walk_namespace_cb, &action, NULL); 1021 1001 #endif 1002 + unregister_hotcpu_notifier(&acpi_cpu_notifier); 1022 1003 } 1023 1004 1024 1005 /*