public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/7] IPMI: don't init irq until ready
@ 2007-10-12 16:37 Corey Minyard
  0 siblings, 0 replies; only message in thread
From: Corey Minyard @ 2007-10-12 16:37 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Patrick Schoeller, Linux Kernel


From: Corey Minyard <cminyard@mvista.com>

Patrick found a race at startup.  Interrupts were being enabled for
the IPMI interface before the driver was really ready to handle them.
This could result in an oops if something was pending on the interface
at startup and interrupt were already enabled (technically shouldn't
happen, but need to cover for this in real life).  So move the IRQ
setup to the code that starts the actual IPMI processing.

Not needed for the stable kernel, very few IPMI devices have interrupts.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
Cc: Patrick Schoeller <Patrick.Schoeller@hp.com>

---
Index: linux-2.6.21/drivers/char/ipmi/ipmi_si_intf.c
===================================================================
--- linux-2.6.21.orig/drivers/char/ipmi/ipmi_si_intf.c
+++ linux-2.6.21/drivers/char/ipmi/ipmi_si_intf.c
@@ -1006,6 +1006,10 @@ static int smi_start_processing(void    
 
 	new_smi->intf = intf;
 
+	/* Try to claim any interrupts. */
+	if (new_smi->irq_setup)
+		new_smi->irq_setup(new_smi);
+
 	/* Set up the timer that drives the interface. */
 	setup_timer(&new_smi->si_timer, smi_timeout, (long)new_smi);
 	new_smi->last_timeout_jiffies = jiffies;
@@ -2762,10 +2766,6 @@ static int try_smi_init(struct smi_info 
 	setup_oem_data_handler(new_smi);
 	setup_xaction_handlers(new_smi);
 
-	/* Try to claim any interrupts. */
-	if (new_smi->irq_setup)
-		new_smi->irq_setup(new_smi);
-
 	INIT_LIST_HEAD(&(new_smi->xmit_msgs));
 	INIT_LIST_HEAD(&(new_smi->hp_xmit_msgs));
 	new_smi->curr_msg = NULL;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-10-12 16:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-12 16:37 [PATCH 1/7] IPMI: don't init irq until ready Corey Minyard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox