drivers/misc/hpilo: Changes to support new security states in iLO5 FW
authorRusk, Mark <mark.rusk@hpe.com>
Mon, 19 Sep 2016 19:50:01 +0000 (19:50 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Sep 2016 10:53:46 +0000 (12:53 +0200)
Changes to support new security states of the iLO5 firmware.

- use BAR5 for CCB's for iLO5
- simplification of error handling

Signed-off-by: Mark Rusk <mark.rusk@hpe.com>
Signed-off-by: David Altobelli <david.altobelli@hpe.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/hpilo.c

index d6a901c..fea8ff4 100644 (file)
@@ -688,7 +688,8 @@ static void ilo_unmap_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
 
 static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
 {
-       int error = -ENOMEM;
+       int bar;
+       unsigned long off;
 
        /* map the memory mapped i/o registers */
        hw->mmio_vaddr = pci_iomap(pdev, 1, 0);
@@ -698,7 +699,15 @@ static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw)
        }
 
        /* map the adapter shared memory region */
-       hw->ram_vaddr = pci_iomap(pdev, 2, max_ccb * ILOHW_CCB_SZ);
+       if (pdev->subsystem_device == 0x00E4) {
+               bar = 5;
+               /* Last 8k is reserved for CCBs */
+               off = pci_resource_len(pdev, bar) - 0x2000;
+       } else {
+               bar = 2;
+               off = 0;
+       }
+       hw->ram_vaddr = pci_iomap_range(pdev, bar, off, max_ccb * ILOHW_CCB_SZ);
        if (hw->ram_vaddr == NULL) {
                dev_err(&pdev->dev, "Error mapping shared mem\n");
                goto mmio_free;
@@ -717,7 +726,7 @@ ram_free:
 mmio_free:
        pci_iounmap(pdev, hw->mmio_vaddr);
 out:
-       return error;
+       return -ENOMEM;
 }
 
 static void ilo_remove(struct pci_dev *pdev)
@@ -899,7 +908,7 @@ static void __exit ilo_exit(void)
        class_destroy(ilo_class);
 }
 
-MODULE_VERSION("1.4.1");
+MODULE_VERSION("1.5.0");
 MODULE_ALIAS(ILO_NAME);
 MODULE_DESCRIPTION(ILO_NAME);
 MODULE_AUTHOR("David Altobelli <david.altobelli@hpe.com>");