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. */