[PATCH 2/2] x86/x2apic: check return value on probe

From: Luiz Capitulino
Date: Thu Aug 04 2016 - 11:07:14 EST


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

Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
---
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