intel_iommu: Fix incorrect "end" for vtd_address_space_unmap
IOMMUNotifier is with inclusive ranges, so we should check against (VTD_ADDRESS_SIZE(s->aw_bits) - 1). Signed-off-by: Yan Zhao <yan.y.zhao@intel.com> [peterx: split from another bigger patch] Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20190624091811.30412-2-peterx@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
9dc83cd9c3
commit
d6d10793dc
@ -3379,12 +3379,12 @@ static void vtd_address_space_unmap(VTDAddressSpace *as, IOMMUNotifier *n)
|
|||||||
* VT-d spec), otherwise we need to consider overflow of 64 bits.
|
* VT-d spec), otherwise we need to consider overflow of 64 bits.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (end > VTD_ADDRESS_SIZE(s->aw_bits)) {
|
if (end > VTD_ADDRESS_SIZE(s->aw_bits) - 1) {
|
||||||
/*
|
/*
|
||||||
* Don't need to unmap regions that is bigger than the whole
|
* Don't need to unmap regions that is bigger than the whole
|
||||||
* VT-d supported address space size
|
* VT-d supported address space size
|
||||||
*/
|
*/
|
||||||
end = VTD_ADDRESS_SIZE(s->aw_bits);
|
end = VTD_ADDRESS_SIZE(s->aw_bits) - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(start <= end);
|
assert(start <= end);
|
||||||
|
Loading…
Reference in New Issue
Block a user