diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index fddb9f66cc47fc35563ee97a2c8fbf13f4127675..d07f3bbca5a18c1d440941dcde849d6eafab098f 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c @@ -628,8 +628,8 @@ int pcibios_add_device(struct pci_dev *dev) (PCI_FUNC(dev->devfn) == rom->function) && (dev->vendor == rom->vendor) && (dev->device == rom->devid)) { - dev->rom = (void *)(unsigned long)(pa_data + - offsetof(struct pci_setup_rom, romdata)); + dev->rom = pa_data + + offsetof(struct pci_setup_rom, romdata); dev->romlen = rom->pcilen; } } diff --git a/drivers/pci/rom.c b/drivers/pci/rom.c index 3a3828fbc87987acd2ac7069483542a292e31fe0..ab886b7ee327af413f98976382869242fcba679b 100644 --- a/drivers/pci/rom.c +++ b/drivers/pci/rom.c @@ -122,7 +122,7 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size) */ if (pdev->rom && pdev->romlen) { *size = pdev->romlen; - return phys_to_virt((phys_addr_t)pdev->rom); + return phys_to_virt(pdev->rom); /* * IORESOURCE_ROM_SHADOW set on x86, x86_64 and IA64 supports legacy * memory map if the VGA enable bit of the Bridge Control register is diff --git a/include/linux/pci.h b/include/linux/pci.h index f116b2d859dce7aa5085eac135ffb3dab5fb164e..957563b7a5e33986339317d8d52ce66c945e7c89 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -333,7 +333,7 @@ struct pci_dev { }; struct pci_ats *ats; /* Address Translation Service */ #endif - void *rom; /* Physical pointer to ROM if it's not from the BAR */ + phys_addr_t rom; /* Physical address of ROM if it's not from the BAR */ size_t romlen; /* Length of ROM if it's not from the BAR */ };