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

Reply via email to