git: a7f3fe764cfb - stable/13 - iommu_gas_remove(): consolidate places where decision is made to keep the entry

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 02 Jan 2024 00:42:46 UTC
The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=a7f3fe764cfbdec5aea4102414edaec721b1c33e

commit a7f3fe764cfbdec5aea4102414edaec721b1c33e
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-12-22 22:41:19 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-01-02 00:42:13 +0000

    iommu_gas_remove(): consolidate places where decision is made to keep the entry
    
    (cherry picked from commit c0047e7c356953d138194ff71cc510ffe85425f0)
---
 sys/dev/iommu/iommu_gas.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sys/dev/iommu/iommu_gas.c b/sys/dev/iommu/iommu_gas.c
index cfd375c658c3..4b6141b981da 100644
--- a/sys/dev/iommu/iommu_gas.c
+++ b/sys/dev/iommu/iommu_gas.c
@@ -693,6 +693,7 @@ iommu_gas_remove_unmap(struct iommu_domain *domain,
 	IOMMU_DOMAIN_ASSERT_LOCKED(domain);
 
 	if ((entry->flags & (IOMMU_MAP_ENTRY_UNMAPPED |
+	    IOMMU_MAP_ENTRY_RMRR |
 	    IOMMU_MAP_ENTRY_REMOVING)) != 0)
 		return;
 	MPASS((entry->flags & IOMMU_MAP_ENTRY_PLACE) == 0);
@@ -720,8 +721,6 @@ iommu_gas_remove_locked(struct iommu_domain *domain,
 		KASSERT(start <= entry->start,
 		    ("iommu_gas_remove entry (%#jx, %#jx) start %#jx",
 		    entry->start, entry->end, start));
-		if ((entry->flags & IOMMU_MAP_ENTRY_RMRR) != 0)
-			continue;
 		iommu_gas_remove_unmap(domain, entry, gc);
 	}
 	if (iommu_gas_remove_clip_right(domain, end, entry, *r2)) {