@@ -256,7 +256,7 @@ static u64 prefetch_spill_page;
#ifdef CONFIG_PCI
# define GET_IOC(dev) ((dev_is_pci(dev)) \
- ? ((struct ioc *) PCI_CONTROLLER(to_pci_dev(dev))->iommu) : NULL)
+ ? ((struct ioc *) PCI_CONTROLLER((to_pci_dev(dev))->bus)->iommu) : NULL)
#else
# define GET_IOC(dev) NULL
#endif
@@ -358,18 +358,19 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info,
acpi_handle rootbus_handle;
unsigned long long segment;
acpi_status status;
+ struct pci_bus *bus = dev->bus;
struct acpi_buffer name_buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- rootbus_handle = acpi_device_handle(PCI_CONTROLLER(dev)->companion);
+ rootbus_handle = acpi_device_handle(PCI_CONTROLLER(bus)->companion);
status = acpi_evaluate_integer(rootbus_handle, METHOD_NAME__SEG, NULL,
&segment);
if (ACPI_SUCCESS(status)) {
- if (segment != pci_domain_nr(dev)) {
+ if (segment != pci_domain_nr(bus)) {
acpi_get_name(rootbus_handle, ACPI_FULL_PATHNAME,
&name_buffer);
printk(KERN_ERR
"%s: Segment number mismatch, 0x%llx vs 0x%x for: %s\n",
- __func__, segment, pci_domain_nr(dev),
+ __func__, segment, pci_domain_nr(bus),
(char *)name_buffer.pointer);
kfree(name_buffer.pointer);
return 1;
@@ -407,7 +408,7 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info,
/* Build up the pcidev_info.pdi_slot_host_handle */
host_devfn = get_host_devfn(pcidev_match.handle, rootbus_handle);
(*pcidev_info)->pdi_slot_host_handle =
- ((unsigned long) pci_domain_nr(dev) << 40) |
+ ((unsigned long) pci_domain_nr(bus) << 40) |
/* bus == 0 */
host_devfn;
return 0;
@@ -108,7 +108,7 @@ sn_pcidev_info_get(struct pci_dev *dev)
struct pcidev_info *pcidev;
list_for_each_entry(pcidev,
- &(SN_PLATFORM_DATA(dev)->pcidev_info), pdi_list) {
+ &(SN_PLATFORM_DATA(dev->bus)->pcidev_info), pdi_list) {
if (pcidev->pdi_linux_pcidev == dev)
return pcidev;
}
@@ -164,7 +164,7 @@ sn_io_slot_fixup(struct pci_dev *dev)
panic("%s: Unable to alloc memory for sn_irq_info", __func__);
/* Call to retrieve pci device information needed by kernel. */
- status = sal_get_pcidev_info((u64) pci_domain_nr(dev),
+ status = sal_get_pcidev_info((u64) pci_domain_nr(dev->bus),
(u64) dev->bus->number,
dev->devfn,
(u64) __pa(pcidev_info),
PCI_CONTROLLER() macro in include/asm/pci.h expects an argument "busdev" which implies a 'struct pci_bus *' type of variable (or at least that is the type of most of the invocations). Correct the cases where the macro is called with a 'struct pci_dev *' variable as argument. Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> --- arch/ia64/hp/common/sba_iommu.c | 2 +- arch/ia64/sn/kernel/io_acpi_init.c | 9 +++++---- arch/ia64/sn/kernel/io_common.c | 2 +- arch/ia64/sn/kernel/io_init.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-)