| From bbd391a15d82e14efe9d69ba64cadb855b061dba Mon Sep 17 00:00:00 2001 |
| From: Prarit Bhargava <prarit@redhat.com> |
| Date: Tue, 27 Apr 2010 11:24:42 -0400 |
| Subject: x86: Fix NULL pointer access in irq_force_complete_move() for Xen guests |
| |
| From: Prarit Bhargava <prarit@redhat.com> |
| |
| commit bbd391a15d82e14efe9d69ba64cadb855b061dba upstream. |
| |
| Upstream PV guests fail to boot because of a NULL pointer in |
| irq_force_complete_move(). It is possible that xen guests have |
| irq_desc->chip_data = NULL. |
| |
| Test for NULL chip_data pointer before attempting to complete an irq move. |
| |
| Signed-off-by: Prarit Bhargava <prarit@redhat.com> |
| LKML-Reference: <20100427152434.16193.49104.sendpatchset@prarit.bos.redhat.com> |
| Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> |
| Signed-off-by: H. Peter Anvin <hpa@zytor.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/x86/kernel/apic/io_apic.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/arch/x86/kernel/apic/io_apic.c |
| +++ b/arch/x86/kernel/apic/io_apic.c |
| @@ -2539,6 +2539,9 @@ void irq_force_complete_move(int irq) |
| struct irq_desc *desc = irq_to_desc(irq); |
| struct irq_cfg *cfg = desc->chip_data; |
| |
| + if (!cfg) |
| + return; |
| + |
| __irq_complete_move(&desc, cfg->vector); |
| } |
| #else |