git: 483c1340a009 - stable/14 - msi_release(): consistently unlock msi_lock around iommu_unmap_msi_intr()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 11 Sep 2024 08:44:38 UTC
The branch stable/14 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=483c1340a009ba51e3694f3990e6c07479667002
commit 483c1340a009ba51e3694f3990e6c07479667002
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-08-27 02:28:49 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-09-11 08:44:00 +0000
msi_release(): consistently unlock msi_lock around iommu_unmap_msi_intr()
(cherry picked from commit e8fc8eb8b8f55072379f65f5f058b81870031b7d)
---
sys/x86/x86/msi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sys/x86/x86/msi.c b/sys/x86/x86/msi.c
index 177bd7868ec4..c8e7db9469ed 100644
--- a/sys/x86/x86/msi.c
+++ b/sys/x86/x86/msi.c
@@ -555,7 +555,9 @@ msi_release(int *irqs, int count)
KASSERT(msi->msi_first == first, ("message not in group"));
KASSERT(msi->msi_dev == first->msi_dev, ("owner mismatch"));
#ifdef IOMMU
+ mtx_unlock(&msi_lock);
iommu_unmap_msi_intr(first->msi_dev, msi->msi_remap_cookie);
+ mtx_lock(&msi_lock);
#endif
msi->msi_first = NULL;
msi->msi_dev = NULL;