All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix for handling bad IPMI DMI data
@ 2005-04-25 17:08 Corey Minyard
  0 siblings, 0 replies; only message in thread
From: Corey Minyard @ 2005-04-25 17:08 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: ipmi_dmi_fix.diff --]
[-- Type: text/x-patch, Size: 1037 bytes --]

Ignore the bottom bit of the base address from the DMI data.  It
is supposed to be set to 1 if it is I/O space.  Few systems do this,
but this enables the ones that do set it to work properly.

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

Index: linux-2.6.12-rc2/drivers/char/ipmi/ipmi_si_intf.c
===================================================================
--- linux-2.6.12-rc2.orig/drivers/char/ipmi/ipmi_si_intf.c
+++ linux-2.6.12-rc2/drivers/char/ipmi/ipmi_si_intf.c
@@ -1654,7 +1654,13 @@
 		}
 	} else {
 		/* Old DMI spec. */
-		ipmi_data->base_addr = base_addr;
+		/* Note that technically, the lower bit of the base
+		 * address should be 1 if the address is I/O and 0 if
+		 * the address is in memory.  So many systems get that
+		 * wrong (and all that I have seen are I/O) so we just
+		 * ignore that bit and assume I/O.  Systems that use
+		 * memory should use the newer spec, anyway. */
+		ipmi_data->base_addr = base_addr & 0xfffe;
 		ipmi_data->addr_space = IPMI_IO_ADDR_SPACE;
 		ipmi_data->offset = 1;
 	}

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

only message in thread, other threads:[~2005-04-25 17:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-25 17:08 [PATCH] Fix for handling bad IPMI DMI data Corey Minyard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.