Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Apr 2025 00:53:44 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 053856c0b59b - stable/14 - x86/dmar: add dmar_is_running()
Message-ID:  <202504090053.5390riJP088340@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by kib:

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

commit 053856c0b59bd962ecbcc3522127e1203ba7e3d5
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-12-14 02:06:04 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-04-09 00:53:17 +0000

    x86/dmar: add dmar_is_running()
    
    (cherry picked from commit 512bb0da518be1dff3f937b7f653c6d3deb4b071)
---
 sys/x86/iommu/intel_dmar.h | 2 ++
 sys/x86/iommu/intel_drv.c  | 9 +++++++++
 2 files changed, 11 insertions(+)

diff --git a/sys/x86/iommu/intel_dmar.h b/sys/x86/iommu/intel_dmar.h
index 57a66aae69b2..018501082dd2 100644
--- a/sys/x86/iommu/intel_dmar.h
+++ b/sys/x86/iommu/intel_dmar.h
@@ -263,6 +263,8 @@ int dmar_map_ioapic_intr(u_int ioapic_id, u_int cpu, u_int vector, bool edge,
     bool activehi, int irq, u_int *cookie, uint32_t *hi, uint32_t *lo);
 int dmar_unmap_ioapic_intr(u_int ioapic_id, u_int *cookie);
 
+int dmar_is_running(void);
+
 extern int haw;
 extern int dmar_rmrr_enable;
 
diff --git a/sys/x86/iommu/intel_drv.c b/sys/x86/iommu/intel_drv.c
index dd2a3d1a631f..28db14bba95b 100644
--- a/sys/x86/iommu/intel_drv.c
+++ b/sys/x86/iommu/intel_drv.c
@@ -86,6 +86,7 @@
 
 static device_t *dmar_devs;
 static int dmar_devcnt;
+static bool dmar_running = false;
 
 typedef int (*dmar_iter_t)(ACPI_DMAR_HEADER *, void *);
 
@@ -539,6 +540,7 @@ dmar_attach(device_t dev)
 	DMAR_UNLOCK(unit);
 #endif
 
+	dmar_running = true;
 	return (0);
 }
 
@@ -1055,6 +1057,13 @@ dmar_inst_rmrr_iter(ACPI_DMAR_HEADER *dmarh, void *arg)
 
 }
 
+int
+dmar_is_running(void)
+{
+
+	return (dmar_running ? 0 : ENXIO);
+}
+
 /*
  * Pre-create all contexts for the DMAR which have RMRR entries.
  */



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