git: 053856c0b59b - stable/14 - x86/dmar: add dmar_is_running()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 09 Apr 2025 00:53:44 UTC
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.
*/