mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 13:31:02 +07:00
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>
This commit is contained in:
parent
030bbdbf4c
commit
25956b6612
@ -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;
|
||||
|
@ -52,10 +52,7 @@ static bool __init processor_physically_present(acpi_handle handle)
|
||||
type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0;
|
||||
cpuid = acpi_get_cpuid(handle, type, acpi_id);
|
||||
|
||||
if (cpuid == -1)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return !invalid_logical_cpuid(cpuid);
|
||||
}
|
||||
|
||||
static void acpi_set_pdc_bits(u32 *buf)
|
||||
|
@ -158,6 +158,11 @@ typedef u32 phys_cpuid_t;
|
||||
#define PHYS_CPUID_INVALID (phys_cpuid_t)(-1)
|
||||
#endif
|
||||
|
||||
static inline bool invalid_logical_cpuid(u32 cpuid)
|
||||
{
|
||||
return (int)cpuid < 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ACPI_HOTPLUG_CPU
|
||||
/* Arch dependent functions for cpu hotplug support */
|
||||
int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, int *pcpu);
|
||||
|
Loading…
Reference in New Issue
Block a user