aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 44a7f13c788b..3522723eb6b8 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -1623,7 +1623,13 @@ static int decode_dmi(dmi_header_t *dm, int intf_num)
1623 } 1623 }
1624 } else { 1624 } else {
1625 /* Old DMI spec. */ 1625 /* Old DMI spec. */
1626 ipmi_data->base_addr = base_addr; 1626 /* Note that technically, the lower bit of the base
1627 * address should be 1 if the address is I/O and 0 if
1628 * the address is in memory. So many systems get that
1629 * wrong (and all that I have seen are I/O) so we just
1630 * ignore that bit and assume I/O. Systems that use
1631 * memory should use the newer spec, anyway. */
1632 ipmi_data->base_addr = base_addr & 0xfffe;
1627 ipmi_data->addr_space = IPMI_IO_ADDR_SPACE; 1633 ipmi_data->addr_space = IPMI_IO_ADDR_SPACE;
1628 ipmi_data->offset = 1; 1634 ipmi_data->offset = 1;
1629 } 1635 }