x86, AMD IOMMU: include amd_iommu_last_bdf in device initialization
All the values read while searching for amd_iommu_last_bdf are defined as inclusive. Let the code handle this value as such. Found by Wei Wang. Thanks Wei. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Wei Wang <wei.wang2@amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
1ca9fda4b2
commit
3a61ec387c
|
@ -667,7 +667,7 @@ static int get_device_resources(struct device *dev,
|
|||
_bdf = calc_devid(pcidev->bus->number, pcidev->devfn);
|
||||
|
||||
/* device not translated by any IOMMU in the system? */
|
||||
if (_bdf >= amd_iommu_last_bdf) {
|
||||
if (_bdf > amd_iommu_last_bdf) {
|
||||
*iommu = NULL;
|
||||
*domain = NULL;
|
||||
*bdf = 0xffff;
|
||||
|
@ -1085,7 +1085,7 @@ void prealloc_protection_domains(void)
|
|||
|
||||
while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
|
||||
devid = (dev->bus->number << 8) | dev->devfn;
|
||||
if (devid >= amd_iommu_last_bdf)
|
||||
if (devid > amd_iommu_last_bdf)
|
||||
continue;
|
||||
devid = amd_iommu_alias_table[devid];
|
||||
if (domain_for_device(devid))
|
||||
|
|
|
@ -732,7 +732,7 @@ static int __init init_exclusion_range(struct ivmd_header *m)
|
|||
set_device_exclusion_range(m->devid, m);
|
||||
break;
|
||||
case ACPI_IVMD_TYPE_ALL:
|
||||
for (i = 0; i < amd_iommu_last_bdf; ++i)
|
||||
for (i = 0; i <= amd_iommu_last_bdf; ++i)
|
||||
set_device_exclusion_range(i, m);
|
||||
break;
|
||||
case ACPI_IVMD_TYPE_RANGE:
|
||||
|
@ -934,7 +934,7 @@ int __init amd_iommu_init(void)
|
|||
/*
|
||||
* let all alias entries point to itself
|
||||
*/
|
||||
for (i = 0; i < amd_iommu_last_bdf; ++i)
|
||||
for (i = 0; i <= amd_iommu_last_bdf; ++i)
|
||||
amd_iommu_alias_table[i] = i;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue