diff options
Diffstat (limited to 'drivers/pci/pci-label.c')
-rw-r--r-- | drivers/pci/pci-label.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c index 51357377efbc..1d828a614ac0 100644 --- a/drivers/pci/pci-label.c +++ b/drivers/pci/pci-label.c | |||
@@ -43,9 +43,11 @@ static size_t find_smbios_instance_string(struct pci_dev *pdev, char *buf, | |||
43 | { | 43 | { |
44 | const struct dmi_device *dmi; | 44 | const struct dmi_device *dmi; |
45 | struct dmi_dev_onboard *donboard; | 45 | struct dmi_dev_onboard *donboard; |
46 | int domain_nr; | ||
46 | int bus; | 47 | int bus; |
47 | int devfn; | 48 | int devfn; |
48 | 49 | ||
50 | domain_nr = pci_domain_nr(pdev->bus); | ||
49 | bus = pdev->bus->number; | 51 | bus = pdev->bus->number; |
50 | devfn = pdev->devfn; | 52 | devfn = pdev->devfn; |
51 | 53 | ||
@@ -53,8 +55,9 @@ static size_t find_smbios_instance_string(struct pci_dev *pdev, char *buf, | |||
53 | while ((dmi = dmi_find_device(DMI_DEV_TYPE_DEV_ONBOARD, | 55 | while ((dmi = dmi_find_device(DMI_DEV_TYPE_DEV_ONBOARD, |
54 | NULL, dmi)) != NULL) { | 56 | NULL, dmi)) != NULL) { |
55 | donboard = dmi->device_data; | 57 | donboard = dmi->device_data; |
56 | if (donboard && donboard->bus == bus && | 58 | if (donboard && donboard->segment == domain_nr && |
57 | donboard->devfn == devfn) { | 59 | donboard->bus == bus && |
60 | donboard->devfn == devfn) { | ||
58 | if (buf) { | 61 | if (buf) { |
59 | if (attribute == SMBIOS_ATTR_INSTANCE_SHOW) | 62 | if (attribute == SMBIOS_ATTR_INSTANCE_SHOW) |
60 | return scnprintf(buf, PAGE_SIZE, | 63 | return scnprintf(buf, PAGE_SIZE, |