lkml.org 
[lkml]   [2005]   [Jan]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectMinor IPMI driver updates
The following patch fixes some minor problems with the IPMI driver.  
Relative to 2.6.11-rc1

Thanks,

-Corey

This patch fixes counting of unhandled messages. Messages that were
handled internally by the driver (to the NULL user) were miscounted
as unhanlded responses. This counts them properly.

This patch also fixes the DMI 16-byte setting, which was set as a
16-bit setting.

It also uses the right value to initilize the address memory when
using a memory-based interface.

Signed-off-by: Corey Minyard <minyard@acm.org>

Index: linux-2.6.11-rc1/drivers/char/ipmi/ipmi_msghandler.c
===================================================================
--- linux-2.6.11-rc1.orig/drivers/char/ipmi/ipmi_msghandler.c 2005-01-19 09:54:15.000000000 -0600
+++ linux-2.6.11-rc1/drivers/char/ipmi/ipmi_msghandler.c 2005-01-19 09:58:35.000000000 -0600
@@ -2301,12 +2301,17 @@

if (!found) {
/* Special handling for NULL users. */
- if (!recv_msg->user && intf->null_user_handler)
+ if (!recv_msg->user && intf->null_user_handler){
intf->null_user_handler(intf, msg);
- /* The user for the message went away, so give up. */
- spin_lock_irqsave(&intf->counter_lock, flags);
- intf->unhandled_local_responses++;
- spin_unlock_irqrestore(&intf->counter_lock, flags);
+ spin_lock_irqsave(&intf->counter_lock, flags);
+ intf->handled_local_responses++;
+ spin_unlock_irqrestore(&intf->counter_lock, flags);
+ }else{
+ /* The user for the message went away, so give up. */
+ spin_lock_irqsave(&intf->counter_lock, flags);
+ intf->unhandled_local_responses++;
+ spin_unlock_irqrestore(&intf->counter_lock, flags);
+ }
ipmi_free_recv_msg(recv_msg);
} else {
struct ipmi_system_interface_addr *smi_addr;
Index: linux-2.6.11-rc1/drivers/char/ipmi/ipmi_si_intf.c
===================================================================
--- linux-2.6.11-rc1.orig/drivers/char/ipmi/ipmi_si_intf.c 2005-01-19 09:54:15.000000000 -0600
+++ linux-2.6.11-rc1/drivers/char/ipmi/ipmi_si_intf.c 2005-01-19 09:58:46.000000000 -0600
@@ -1299,7 +1299,7 @@
memset(info, 0, sizeof(*info));

info->io_setup = mem_setup;
- info->io.info = (void *) addrs[intf_num];
+ info->io.info = &addrs[intf_num];
info->io.addr = NULL;
info->io.regspacing = regspacings[intf_num];
if (!info->io.regspacing)
@@ -1587,8 +1587,9 @@
case 0x01: /* 32-bit boundaries */
ipmi_data->offset = 4;
break;
- case 0x02: /* 16-bit boundaries */
- ipmi_data->offset = 2;
+ case 0x02: /* 16-byte boundaries */
+ ipmi_data->offset = 16;
+ break;
default:
printk("ipmi_si: Unknown SMBIOS IPMI Base Addr"
" Modifier: 0x%x\n", reg_spacing);
\
 
 \ /
  Last update: 2005-03-22 14:09    [W:1.780 / U:0.452 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site