Commit 4c4c6f38 authored by Thomas Gleixner's avatar Thomas Gleixner

x86/cpu/topology: Simplify APIC registration

Having the same check whether the number of assigned CPUs has reached the
nr_cpu_ids limit twice in the same code path is pointless. Repeating the
information that CPUs are ignored over and over is also pointless noise.

Remove the redundant check and reduce the noise by using a pr_warn_once().
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarMichael Kelley <mhklinux@outlook.com>
Tested-by: default avatarSohil Mehta <sohil.mehta@intel.com>
Link: https://lore.kernel.org/r/20240213210252.050264369@linutronix.de

parent 58aa34ab
...@@ -107,14 +107,6 @@ static int allocate_logical_cpuid(u32 apic_id) ...@@ -107,14 +107,6 @@ static int allocate_logical_cpuid(u32 apic_id)
if (cpu >= 0) if (cpu >= 0)
return cpu; return cpu;
/* Allocate a new cpuid. */
if (nr_logical_cpuids >= nr_cpu_ids) {
WARN_ONCE(1, "APIC: NR_CPUS/possible_cpus limit of %u reached. "
"Processor %d/0x%x and the rest are ignored.\n",
nr_cpu_ids, nr_logical_cpuids, apic_id);
return -EINVAL;
}
cpuid_to_apicid[nr_logical_cpuids] = apic_id; cpuid_to_apicid[nr_logical_cpuids] = apic_id;
return nr_logical_cpuids++; return nr_logical_cpuids++;
} }
...@@ -135,7 +127,7 @@ static void cpu_update_apic(int cpu, u32 apicid) ...@@ -135,7 +127,7 @@ static void cpu_update_apic(int cpu, u32 apicid)
static int generic_processor_info(int apicid) static int generic_processor_info(int apicid)
{ {
int cpu, max = nr_cpu_ids; int cpu;
/* The boot CPU must be set before MADT/MPTABLE parsing happens */ /* The boot CPU must be set before MADT/MPTABLE parsing happens */
if (cpuid_to_apicid[0] == BAD_APICID) if (cpuid_to_apicid[0] == BAD_APICID)
...@@ -155,21 +147,12 @@ static int generic_processor_info(int apicid) ...@@ -155,21 +147,12 @@ static int generic_processor_info(int apicid)
} }
if (num_processors >= nr_cpu_ids) { if (num_processors >= nr_cpu_ids) {
int thiscpu = max + disabled_cpus; pr_warn_once("APIC: CPU limit of %d reached. Ignoring further CPUs\n", nr_cpu_ids);
pr_warn("APIC: NR_CPUS/possible_cpus limit of %i reached. "
"Processor %d/0x%x ignored.\n", max, thiscpu, apicid);
disabled_cpus++; disabled_cpus++;
return -EINVAL; return -ENOSPC;
} }
cpu = allocate_logical_cpuid(apicid); cpu = allocate_logical_cpuid(apicid);
if (cpu < 0) {
disabled_cpus++;
return -EINVAL;
}
cpu_update_apic(cpu, apicid); cpu_update_apic(cpu, apicid);
return cpu; return cpu;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment