amd-iommu: fix an off-by-one error in the AMD IOMMU driver.
The variable amd_iommu_last_bdf holds the maximum bdf of any device controlled by an IOMMU, so the number of device entries needed is amd_iommu_last_bdf+1. The function tbl_size used amd_iommu_last_bdf instead. This would be a problem if the last device were a large enough power of 2. [ Impact: fix amd_iommu_last_bdf off-by-one error ] Signed-off-by: Neil Turton <nturton@solarflare.com> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
41fb454ebe
commit
421f909c80
1 changed files with 1 additions and 1 deletions
|
@ -175,7 +175,7 @@ static inline void update_last_devid(u16 devid)
|
||||||
static inline unsigned long tbl_size(int entry_size)
|
static inline unsigned long tbl_size(int entry_size)
|
||||||
{
|
{
|
||||||
unsigned shift = PAGE_SHIFT +
|
unsigned shift = PAGE_SHIFT +
|
||||||
get_order(amd_iommu_last_bdf * entry_size);
|
get_order(((int)amd_iommu_last_bdf + 1) * entry_size);
|
||||||
|
|
||||||
return 1UL << shift;
|
return 1UL << shift;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue