aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <[email protected]>2024-02-13 22:05:47 +0100
committerThomas Gleixner <[email protected]>2024-02-15 22:07:43 +0100
commit4c4c6f38704ab0e3f85f660b7479de7aa559d79a (patch)
tree1d3390f08ec8dfe8dec3f1ada80a2873fce70aa7
parent58aa34abe9954cd5dfbf322fc612146c5f45e52b (diff)
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: Thomas Gleixner <[email protected]> Tested-by: Michael Kelley <[email protected]> Tested-by: Sohil Mehta <[email protected]> Link: https://lore.kernel.org/r/[email protected]
-rw-r--r--arch/x86/kernel/cpu/topology.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/arch/x86/kernel/cpu/topology.c b/arch/x86/kernel/cpu/topology.c
index a6c931434951..8b42918b7b58 100644
--- a/arch/x86/kernel/cpu/topology.c
+++ b/arch/x86/kernel/cpu/topology.c
@@ -107,14 +107,6 @@ static int allocate_logical_cpuid(u32 apic_id)
if (cpu >= 0)
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;
return nr_logical_cpuids++;
}
@@ -135,7 +127,7 @@ static void cpu_update_apic(int cpu, u32 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 */
if (cpuid_to_apicid[0] == BAD_APICID)
@@ -155,21 +147,12 @@ static int generic_processor_info(int apicid)
}
if (num_processors >= nr_cpu_ids) {
- int thiscpu = max + disabled_cpus;
-
- pr_warn("APIC: NR_CPUS/possible_cpus limit of %i reached. "
- "Processor %d/0x%x ignored.\n", max, thiscpu, apicid);
-
+ pr_warn_once("APIC: CPU limit of %d reached. Ignoring further CPUs\n", nr_cpu_ids);
disabled_cpus++;
- return -EINVAL;
+ return -ENOSPC;
}
cpu = allocate_logical_cpuid(apicid);
- if (cpu < 0) {
- disabled_cpus++;
- return -EINVAL;
- }
-
cpu_update_apic(cpu, apicid);
return cpu;
}