aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel/apic/vector.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2018-02-01 19:53:33 +0800
committerAlex Shi <alex.shi@linaro.org>2018-02-01 19:54:48 +0800
commitcd1fe2006b62234455a91e428bad45331dc79250 (patch)
tree5fca3d52a0d3f6edbb4352d6b54f3155d7e2c100 /arch/x86/kernel/apic/vector.c
parent824ce96ff92c399f5bd2ee308f231300e7e89174 (diff)
parent6fdbca2f35ee3e80079b31a5cda7bb6fec8def39 (diff)
Merge remote-tracking branch 'rt-stable/v4.4-rt' into linux-linaro-lsk-v4.4-rtlsk-v4.4-18.02-rt
Conflicts: lsk has current_stack_pointer and arch_within_stack_frames in arch/x86/include/asm/thread_info.h
Diffstat (limited to 'arch/x86/kernel/apic/vector.c')
-rw-r--r--arch/x86/kernel/apic/vector.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
index 0988e204f1e3..a41e523536a2 100644
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -359,14 +359,17 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq,
irq_data->chip_data = data;
irq_data->hwirq = virq + i;
err = assign_irq_vector_policy(virq + i, node, data, info);
- if (err)
+ if (err) {
+ irq_data->chip_data = NULL;
+ free_apic_chip_data(data);
goto error;
+ }
}
return 0;
error:
- x86_vector_free_irqs(domain, virq, i + 1);
+ x86_vector_free_irqs(domain, virq, i);
return err;
}