git: 53545967642d - main - vtd: Increase DRHD_MAX_UNITS

From: Eric Joyner <erj_at_FreeBSD.org>
Date: Tue, 31 Jan 2023 21:58:08 UTC
The branch main has been updated by erj:

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

commit 53545967642d850eee4f2dd9fa27cae52ae981b9
Author:     Eric Joyner <erj@FreeBSD.org>
AuthorDate: 2023-01-30 21:34:03 +0000
Commit:     Eric Joyner <erj@FreeBSD.org>
CommitDate: 2023-01-31 21:57:42 +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 <erj@FreeBSD.org>
    
    PR:             268486
    Sponsored by:   Intel Corporation
    Reviewed by:    rew@, corvink@
    MFC after:      1 day
    Differential Revision:  https://reviews.freebsd.org/D38285
---
 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 21e81223f6ee..b860e4de3817 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 ACPI_DMAR_HARDWARE_UNIT	*drhds[DRHD_MAX_UNITS];
 static int			drhd_num;
 static struct vtdmap		*vtdmaps[DRHD_MAX_UNITS];