ACPI / processor: Rework processor throttling with work_on_cpu()
authorLan Tianyu <tianyu.lan@intel.com>
Wed, 26 Feb 2014 13:03:05 +0000 (21:03 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Feb 2014 23:21:05 +0000 (00:21 +0100)
commitf3ca4164529b875374c410193bbbac0ee960895f
tree3fab24dba3ef21ba84f1c03c92a4223a249431d9
parentcfbf8d4857c26a8a307fb7cd258074c9dcd8c691
ACPI / processor: Rework processor throttling with work_on_cpu()

acpi_processor_set_throttling() uses set_cpus_allowed_ptr() to make
sure that the (struct acpi_processor)->acpi_processor_set_throttling()
callback will run on the right CPU.  However, the function may be
called from a worker thread already bound to a different CPU in which
case that won't work.

Make acpi_processor_set_throttling() use work_on_cpu() as appropriate
instead of abusing set_cpus_allowed_ptr().

Reported-and-tested-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Cc: All applicable <stable@vger.kernel.org>
[rjw: Changelog]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/processor_throttling.c