ACPI / Processor: Drop setup_max_cpus check from acpi_processor_add()
authorPrakash, Prashanth <pprakash@codeaurora.org>
Thu, 23 Mar 2017 21:21:53 +0000 (15:21 -0600)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 18 Apr 2017 14:50:24 +0000 (16:50 +0200)
commit35b68735988447485074cfa862710e49c082c013
tree744a792bd55dc12b6122ab28fb08ff8db52482d9
parent4f7d029b9bf009fbee76bb10c0c4351a1870d2f3
ACPI / Processor: Drop setup_max_cpus check from acpi_processor_add()

When maxcpus=X kernel argument is used, we parse the ACPI tables only
for the first X cpus. The per-cpu ACPI data include the _PSD tables
which gives information about related cpus.

cppc_cpufreq and acpi-cpufreq parses the table once during init to
deduce the related cpus. If a user brings a new cpu online after boot
the related cpu data becomes incorrect.

acpi_get_psd_map() in acpi_cppc.c returns error if it fails to find
the parsed ACPI data for possible CPU resulting in cppc_cpufreq
initialization failure.

With this change we will probe all possible CPUs prior to cpufreq
initialization, but will bring only setup_max_cpus online. nr_cpus
kernel parameter can be used to restict even parsing per-cpu ACPI
tables.

Signed-off-by: Prashanth Prakash <pprakash@codeaurora.org>
[ rjw: Subject ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_processor.c