Messages in this thread Patch in this message | | | Subject | Re: [Fastboot] Re: [PATCH] [KDUMP] pending interrupts problem | From | (Eric W. Biederman) | Date | Thu, 27 Oct 2005 18:08:03 -0600 |
| |
Alex Lyashkov <umka@sevcity.net> writes:
> seems to bad patch. you dereference pointer (1) before check to NULL(2).
Duh. I forgot to delete the earlier references. That should have been...
---
arch/i386/kernel/smp.c | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-)
applies-to: e6a6c8ed12ba1ef7fa376fa3993e3c329e9f294a 50119a3947498cd8112455e8111f0579f5b8a232 diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c index 218d725..b0fb524 100644 --- a/arch/i386/kernel/smp.c +++ b/arch/i386/kernel/smp.c @@ -560,6 +560,7 @@ int smp_call_function (void (*func) (voi if (wait) while (atomic_read(&data.finished) != cpus) cpu_relax(); + call_data = NULL; spin_unlock(&call_lock); return 0; @@ -604,11 +605,19 @@ fastcall void smp_reschedule_interrupt(s fastcall void smp_call_function_interrupt(struct pt_regs *regs) { - void (*func) (void *info) = call_data->func; - void *info = call_data->info; - int wait = call_data->wait; + void (*func) (void *info); + void *info; + int wait; ack_APIC_irq(); + + /* Ignore spurious IPIs */ + if (!call_data) + return; + + func = call_data->func; + info = call_data->info; + wait = call_data->wait; /* * Notify initiating CPU that I've grabbed the data and am * about to execute the function --- 0.99.8.GIT - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |