Author: br
Date: Mon Nov 16 15:37:09 2020
New Revision: 367726
URL: https://svnweb.freebsd.org/changeset/base/367726

Log:
  Fix a bug in assertion: entry flags also includes IOMMU_MAP_ENTRY_UNMAPPED.
  The entry->flags field is initialized in iommu_gas_init_domain().
  
  Reviewed by:  kib
  Sponsored by: Innovate DSbD
  Differential Revision:        https://reviews.freebsd.org/D27235

Modified:
  head/sys/dev/iommu/iommu_gas.c

Modified: head/sys/dev/iommu/iommu_gas.c
==============================================================================
--- head/sys/dev/iommu/iommu_gas.c      Mon Nov 16 15:29:52 2020        
(r367725)
+++ head/sys/dev/iommu/iommu_gas.c      Mon Nov 16 15:37:09 2020        
(r367726)
@@ -258,7 +258,8 @@ iommu_gas_fini_domain(struct iommu_domain *domain)
        entry = RB_MIN(iommu_gas_entries_tree, &domain->rb_root);
        KASSERT(entry->start == 0, ("start entry start %p", domain));
        KASSERT(entry->end == IOMMU_PAGE_SIZE, ("start entry end %p", domain));
-       KASSERT(entry->flags == IOMMU_MAP_ENTRY_PLACE,
+       KASSERT(entry->flags ==
+           (IOMMU_MAP_ENTRY_PLACE | IOMMU_MAP_ENTRY_UNMAPPED),
            ("start entry flags %p", domain));
        RB_REMOVE(iommu_gas_entries_tree, &domain->rb_root, entry);
        iommu_gas_free_entry(domain, entry);
@@ -266,7 +267,8 @@ iommu_gas_fini_domain(struct iommu_domain *domain)
        entry = RB_MAX(iommu_gas_entries_tree, &domain->rb_root);
        KASSERT(entry->start == domain->end, ("end entry start %p", domain));
        KASSERT(entry->end == domain->end, ("end entry end %p", domain));
-       KASSERT(entry->flags == IOMMU_MAP_ENTRY_PLACE,
+       KASSERT(entry->flags ==
+           (IOMMU_MAP_ENTRY_PLACE | IOMMU_MAP_ENTRY_UNMAPPED),
            ("end entry flags %p", domain));
        RB_REMOVE(iommu_gas_entries_tree, &domain->rb_root, entry);
        iommu_gas_free_entry(domain, entry);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to