Merge remote-tracking branch 'lsk/v3.10/topic/clk-divider' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / arch / x86 / pci / common.c
index 305c68b8d53825fbda7f635de0ae4c1af43fe03b..981c2dbd72cc45e6d77a98dab694d87b0523696a 100644 (file)
@@ -628,7 +628,9 @@ int pcibios_add_device(struct pci_dev *dev)
 
        pa_data = boot_params.hdr.setup_data;
        while (pa_data) {
-               data = phys_to_virt(pa_data);
+               data = ioremap(pa_data, sizeof(*rom));
+               if (!data)
+                       return -ENOMEM;
 
                if (data->type == SETUP_PCI) {
                        rom = (struct pci_setup_rom *)data;
@@ -645,6 +647,7 @@ int pcibios_add_device(struct pci_dev *dev)
                        }
                }
                pa_data = data->next;
+               iounmap(data);
        }
        return 0;
 }