Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Nov 2020 15:37:10 +0000 (UTC)
From:      Ruslan Bukin <br@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r367726 - head/sys/dev/iommu
Message-ID:  <202011161537.0AGFbAru055156@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011161537.0AGFbAru055156>