git: 7aaa7dad32ca - stable/13 - vtd: Increase DRHD_MAX_UNITS

From: Eric Joyner <>
Date: Mon, 06 Feb 2023 22:48:45 UTC
The branch stable/13 has been updated by erj:


commit 7aaa7dad32ca350e972d7c4688e39c50d818b45b
Author:     Eric Joyner <>
AuthorDate: 2023-01-30 21:34:03 +0000
Commit:     Eric Joyner <>
CommitDate: 2023-02-06 22:48:19 +0000

    vtd: Increase DRHD_MAX_UNITS
    Observed on a couple Ice Lake-SP platforms (Intel Coyote Pass, Dell
    R750), there are more than 8 DRHD sections enumerated in the DMAR ACPI
    section.  Since the previous limit was 8, this resulted in some of these
    not being parsed by vtd when the iommu is initialized; in this case when
    PCI devices are being passthru'd to a bhyve VM.
    This omission later causes a kernel panic later in initialization when
    devices could not be found in a valid DRHD scope because the DHRD
    containing the device's scope was not added to vtd.
    Signed-off-by: Eric Joyner <>
    PR:             268486
    Sponsored by:   Intel Corporation
    Reviewed by:    rew@, corvink@
    Differential Revision:
    (cherry picked from commit 53545967642d850eee4f2dd9fa27cae52ae981b9)
 sys/amd64/vmm/intel/vtd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/amd64/vmm/intel/vtd.c b/sys/amd64/vmm/intel/vtd.c
index 8f06dc823364..c3af7779a7ca 100644
--- a/sys/amd64/vmm/intel/vtd.c
+++ b/sys/amd64/vmm/intel/vtd.c
@@ -117,7 +117,7 @@ struct domain {
 static SLIST_HEAD(, domain) domhead;
-#define	DRHD_MAX_UNITS	8
+#define	DRHD_MAX_UNITS	16
 static int			drhd_num;
 static struct vtdmap		*vtdmaps[DRHD_MAX_UNITS];