cpuhp_setup_state() can fail. If it does, we have to
return 0 to upper layers.

Signed-off-by: Luiz Capitulino <[email protected]>
---
 arch/x86/kernel/apic/x2apic_cluster.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/apic/x2apic_cluster.c 
b/arch/x86/kernel/apic/x2apic_cluster.c
index 18b1704..eb4e459 100644
--- a/arch/x86/kernel/apic/x2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -187,12 +187,14 @@ int x2apic_dead_cpu(unsigned int this_cpu)
 
 static int x2apic_cluster_probe(void)
 {
+       int ret;
+
        if (!x2apic_mode)
                return 0;
 
-       cpuhp_setup_state(CPUHP_X2APIC_PREPARE, "X2APIC_PREPARE",
+       ret = cpuhp_setup_state(CPUHP_X2APIC_PREPARE, "X2APIC_PREPARE",
                          x2apic_prepare_cpu, x2apic_dead_cpu);
-       return 1;
+       return ret < 0 ? 0 : 1;
 }
 
 static const struct cpumask *x2apic_cluster_target_cpus(void)
-- 
2.5.5

Reply via email to