summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpi_processor.c
diff options
context:
space:
mode:
authorHanjun Guo <hanjun.guo@linaro.org>2015-05-11 06:17:13 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-05-13 23:28:14 +0200
commit25956b6612601cf36022392ffa83f6bf97939bcd (patch)
treef3b8efbce1c45c7ccf5796e38046f13477d22a76 /drivers/acpi/acpi_processor.c
parentLinux 4.1-rc3 (diff)
downloadlinux-25956b6612601cf36022392ffa83f6bf97939bcd.tar.xz
linux-25956b6612601cf36022392ffa83f6bf97939bcd.zip
ACPI / processor: Introduce invalid_logical_cpuid()
In ACPI processor drivers, we use direct comparisons of cpu logical id with -1 which are error prone in case logical cpuid is accidentally assinged an error code and prevents us from returning an error-encoding cpuid directly in some cases. So introduce invalid_logical_cpuid() to identify cpu with invalid logical cpu num, then it will be used to replace the direct comparisons with -1. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpi_processor.c')
-rw-r--r--drivers/acpi/acpi_processor.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
index 58f335ca2e75..ac6bda030a74 100644
--- a/drivers/acpi/acpi_processor.c
+++ b/drivers/acpi/acpi_processor.c
@@ -275,7 +275,8 @@ static int acpi_processor_get_info(struct acpi_device *device)
* Handle UP system running SMP kernel, with no CPU
* entry in MADT
*/
- if ((cpu_index == -1) && (num_online_cpus() == 1))
+ if (invalid_logical_cpuid(cpu_index)
+ && (num_online_cpus() == 1))
cpu_index = 0;
}
pr->id = cpu_index;
@@ -285,7 +286,7 @@ static int acpi_processor_get_info(struct acpi_device *device)
* less than the max # of CPUs. They should be ignored _iff
* they are physically not present.
*/
- if (pr->id == -1) {
+ if (invalid_logical_cpuid(pr->id)) {
int ret = acpi_processor_hotadd_init(pr);
if (ret)
return ret;