dev/iommu: Include offset in maxaddr check.
If iommu_gas_match_one has to adjust for a boundary crossing, its check against maxaddr includes 'offset' in its calculation, to ensure that the allocated memory does not exceed the max address. However, if there's no boundary crossing adjustment, then the maxaddr check disregards 'offset'. Fix that. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D34978
This commit is contained in:
parent
1a7f22d9c2
commit
11fced21cc
@ -305,7 +305,7 @@ iommu_gas_match_one(struct iommu_gas_match_args *a, iommu_gaddr_t beg,
|
||||
|
||||
a->entry->start = roundup2(beg + IOMMU_PAGE_SIZE,
|
||||
a->common->alignment);
|
||||
if (a->entry->start + a->size > maxaddr)
|
||||
if (a->entry->start + a->offset + a->size > maxaddr)
|
||||
return (false);
|
||||
|
||||
/* IOMMU_PAGE_SIZE to create gap after new entry. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user