From: Corey Minyard <[email protected]> On a PCI update, the offset for HP PCI interfaces to the IPMI controller was left off. Add the offset back in. The "dead code" dealing with first_reg_offset was removed in 2.6.32, so that is re-added.
Signed-off-by: Corey Minyard <[email protected]> Index: linux-2.6.33/drivers/char/ipmi/ipmi_si_intf.c =================================================================== --- linux-2.6.33.orig/drivers/char/ipmi/ipmi_si_intf.c +++ linux-2.6.33/drivers/char/ipmi/ipmi_si_intf.c @@ -2363,6 +2363,7 @@ static int __devinit ipmi_pci_probe(stru int rv; int class_type = pdev->class & PCI_ERMC_CLASSCODE_TYPE_MASK; struct smi_info *info; + int first_reg_offset = 0; info = kzalloc(sizeof(*info), GFP_KERNEL); if (!info) @@ -2401,6 +2402,9 @@ static int __devinit ipmi_pci_probe(stru info->addr_source_cleanup = ipmi_pci_cleanup; info->addr_source_data = pdev; + if (pdev->subsystem_vendor == PCI_HP_VENDOR_ID) + first_reg_offset = 1; + if (pci_resource_flags(pdev, 0) & IORESOURCE_IO) { info->io_setup = port_setup; info->io.addr_type = IPMI_IO_ADDR_SPACE; @@ -2408,7 +2412,7 @@ static int __devinit ipmi_pci_probe(stru info->io_setup = mem_setup; info->io.addr_type = IPMI_MEM_ADDR_SPACE; } - info->io.addr_data = pci_resource_start(pdev, 0); + info->io.addr_data = pci_resource_start(pdev, 0) + first_reg_offset; info->io.regspacing = DEFAULT_REGSPACING; info->io.regsize = DEFAULT_REGSPACING; ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Openipmi-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openipmi-developer
