Re: [Fastboot] Re: [PATCH] [KDUMP] pending interrupts problem

From: Eric W. Biederman
Date: Thu Oct 27 2005 - 19:08:38 EST


Alex Lyashkov <umka@xxxxxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/