AMD IOMMU: calculate IVHD size with a function
The current calculation of the IVHD entry size is hard to read. So move this code to a seperate function to make it more clear what this calculation does. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
199d0d5012
commit
b514e55569
|
@ -296,6 +296,14 @@ static void __init iommu_unmap_mmio_space(struct amd_iommu *iommu)
|
|||
*
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* This function calculates the length of a given IVHD entry
|
||||
*/
|
||||
static inline int ivhd_entry_length(u8 *ivhd)
|
||||
{
|
||||
return 0x04 << (*ivhd >> 6);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function reads the last device id the IOMMU has to handle from the PCI
|
||||
* capability header for this IOMMU
|
||||
|
@ -340,7 +348,7 @@ static int __init find_last_devid_from_ivhd(struct ivhd_header *h)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
p += 0x04 << (*p >> 6);
|
||||
p += ivhd_entry_length(p);
|
||||
}
|
||||
|
||||
WARN_ON(p != end);
|
||||
|
@ -641,7 +649,7 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu,
|
|||
break;
|
||||
}
|
||||
|
||||
p += 0x04 << (e->type >> 6);
|
||||
p += ivhd_entry_length(p);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue