David A. Ranch wrote: > > How does one tell if their IPMI system uses interrupts vs. polling? You can look at /proc/interrupts and look for ipmi_si, or you can look in /proc/ipmi/0/si_stats and see if there are any interrupts coming in.
Thanks, -corey > > --David > >> Can some of you please test the attached patch on systems that have >> interrupts? I think this is a problem, but I don't have a system that >> supports interrupts, so I can't really test it. And I'd want this >> tested on multiple systems, anyway. >> >> Thanks, >> >> -corey >> >> ------------------------------------------------------------------------ >> >> 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. >> >> Signed-off-by: Corey Minyard <[EMAIL PROTECTED]> >> Cc: Patrick Schoeller <[EMAIL PROTECTED]> >> >> >> 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; >> >> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by DB2 Express >> Download DB2 Express C - the FREE version of DB2 express and take >> control of your XML. No limits. Just data. Click to get it now. >> http://sourceforge.net/powerbar/db2/ >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Ipmitool-devel mailing list >> Ipmitool-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ipmitool-devel >> > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Ipmitool-devel mailing list Ipmitool-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ipmitool-devel