Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers/misc/hpilo: Changes to support new security states in iLO5 FW

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>

authored by

Rusk, Mark and committed by
Greg Kroah-Hartman
c9fef1cc 3936e4c8

+13 -4
+13 -4
drivers/misc/hpilo.c
··· 688 688 689 689 static int ilo_map_device(struct pci_dev *pdev, struct ilo_hwinfo *hw) 690 690 { 691 - int error = -ENOMEM; 691 + int bar; 692 + unsigned long off; 692 693 693 694 /* map the memory mapped i/o registers */ 694 695 hw->mmio_vaddr = pci_iomap(pdev, 1, 0); ··· 699 698 } 700 699 701 700 /* map the adapter shared memory region */ 702 - hw->ram_vaddr = pci_iomap(pdev, 2, max_ccb * ILOHW_CCB_SZ); 701 + if (pdev->subsystem_device == 0x00E4) { 702 + bar = 5; 703 + /* Last 8k is reserved for CCBs */ 704 + off = pci_resource_len(pdev, bar) - 0x2000; 705 + } else { 706 + bar = 2; 707 + off = 0; 708 + } 709 + hw->ram_vaddr = pci_iomap_range(pdev, bar, off, max_ccb * ILOHW_CCB_SZ); 703 710 if (hw->ram_vaddr == NULL) { 704 711 dev_err(&pdev->dev, "Error mapping shared mem\n"); 705 712 goto mmio_free; ··· 726 717 mmio_free: 727 718 pci_iounmap(pdev, hw->mmio_vaddr); 728 719 out: 729 - return error; 720 + return -ENOMEM; 730 721 } 731 722 732 723 static void ilo_remove(struct pci_dev *pdev) ··· 908 899 class_destroy(ilo_class); 909 900 } 910 901 911 - MODULE_VERSION("1.4.1"); 902 + MODULE_VERSION("1.5.0"); 912 903 MODULE_ALIAS(ILO_NAME); 913 904 MODULE_DESCRIPTION(ILO_NAME); 914 905 MODULE_AUTHOR("David Altobelli <david.altobelli@hpe.com>");