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

Merge branch 'pci/jiang-get-domain-bus-slot' into next

* pci/jiang-get-domain-bus-slot:
xen-pcifront: Use hotplug-safe pci_get_domain_bus_and_slot()
PCI: Use hotplug-safe pci_get_domain_bus_and_slot()
PCI/cpcihp: Use hotplug-safe pci_get_domain_bus_and_slot()
PCI/vga: Use hotplug-safe pci_get_domain_bus_and_slot()
ia64/PCI: Use hotplug-safe pci_get_domain_bus_and_slot()

+10 -35
+1 -3
arch/ia64/sn/kernel/io_common.c
··· 229 229 { 230 230 int segment = pci_domain_nr(dev->bus); 231 231 struct pcibus_bussoft *bs; 232 - struct pci_bus *host_pci_bus; 233 232 struct pci_dev *host_pci_dev; 234 233 unsigned int bus_no, devfn; 235 234 ··· 244 245 245 246 bus_no = (pcidev_info->pdi_slot_host_handle >> 32) & 0xff; 246 247 devfn = pcidev_info->pdi_slot_host_handle & 0xffffffff; 247 - host_pci_bus = pci_find_bus(segment, bus_no); 248 - host_pci_dev = pci_get_slot(host_pci_bus, devfn); 248 + host_pci_dev = pci_get_domain_bus_and_slot(segment, bus_no, devfn); 249 249 250 250 pcidev_info->host_pci_dev = host_pci_dev; 251 251 pcidev_info->pdi_linux_pcidev = dev;
+3 -12
drivers/gpu/vga/vgaarb.c
··· 1066 1066 } 1067 1067 1068 1068 } else if (strncmp(curr_pos, "target ", 7) == 0) { 1069 - struct pci_bus *pbus; 1070 1069 unsigned int domain, bus, devfn; 1071 1070 struct vga_device *vgadev; 1072 1071 ··· 1084 1085 pr_debug("vgaarb: %s ==> %x:%x:%x.%x\n", curr_pos, 1085 1086 domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); 1086 1087 1087 - pbus = pci_find_bus(domain, bus); 1088 - pr_debug("vgaarb: pbus %p\n", pbus); 1089 - if (pbus == NULL) { 1090 - pr_err("vgaarb: invalid PCI domain and/or bus address %x:%x\n", 1091 - domain, bus); 1092 - ret_val = -ENODEV; 1093 - goto done; 1094 - } 1095 - pdev = pci_get_slot(pbus, devfn); 1088 + pdev = pci_get_domain_bus_and_slot(domain, bus, devfn); 1096 1089 pr_debug("vgaarb: pdev %p\n", pdev); 1097 1090 if (!pdev) { 1098 - pr_err("vgaarb: invalid PCI address %x:%x\n", 1099 - bus, devfn); 1091 + pr_err("vgaarb: invalid PCI address %x:%x:%x\n", 1092 + domain, bus, devfn); 1100 1093 ret_val = -ENODEV; 1101 1094 goto done; 1102 1095 }
+2 -6
drivers/pci/hotplug/cpcihp_generic.c
··· 154 154 if(!r) 155 155 return -EBUSY; 156 156 157 - bus = pci_find_bus(0, bridge_busnr); 158 - if (!bus) { 159 - err("Invalid bus number %d", bridge_busnr); 160 - return -EINVAL; 161 - } 162 - dev = pci_get_slot(bus, PCI_DEVFN(bridge_slot, 0)); 157 + dev = pci_get_domain_bus_and_slot(0, bridge_busnr, 158 + PCI_DEVFN(bridge_slot, 0)); 163 159 if(!dev || dev->hdr_type != PCI_HEADER_TYPE_BRIDGE) { 164 160 err("Invalid bridge device %s", bridge); 165 161 pci_dev_put(dev);
+2 -6
drivers/pci/iov.c
··· 152 152 static void virtfn_remove(struct pci_dev *dev, int id, int reset) 153 153 { 154 154 char buf[VIRTFN_ID_LEN]; 155 - struct pci_bus *bus; 156 155 struct pci_dev *virtfn; 157 156 struct pci_sriov *iov = dev->sriov; 158 157 159 - bus = pci_find_bus(pci_domain_nr(dev->bus), virtfn_bus(dev, id)); 160 - if (!bus) 161 - return; 162 - 163 - virtfn = pci_get_slot(bus, virtfn_devfn(dev, id)); 158 + virtfn = pci_get_domain_bus_and_slot(pci_domain_nr(dev->bus), 159 + virtfn_bus(dev, id), virtfn_devfn(dev, id)); 164 160 if (!virtfn) 165 161 return; 166 162
+2 -8
drivers/pci/xen-pcifront.c
··· 982 982 int err = 0; 983 983 int i, num_devs; 984 984 unsigned int domain, bus, slot, func; 985 - struct pci_bus *pci_bus; 986 985 struct pci_dev *pci_dev; 987 986 char str[64]; 988 987 ··· 1031 1032 goto out; 1032 1033 } 1033 1034 1034 - pci_bus = pci_find_bus(domain, bus); 1035 - if (!pci_bus) { 1036 - dev_dbg(&pdev->xdev->dev, "Cannot get bus %04x:%02x\n", 1037 - domain, bus); 1038 - continue; 1039 - } 1040 - pci_dev = pci_get_slot(pci_bus, PCI_DEVFN(slot, func)); 1035 + pci_dev = pci_get_domain_bus_and_slot(domain, bus, 1036 + PCI_DEVFN(slot, func)); 1041 1037 if (!pci_dev) { 1042 1038 dev_dbg(&pdev->xdev->dev, 1043 1039 "Cannot get PCI device %04x:%02x:%02x.%d\n",