mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-06 00:00:42 -07:00
intel_iommu: Use BQL_LOCK_GUARD to manage cleanup automatically
vtd_switch_address_space needs to take the BQL if not already held. Use BQL_LOCK_GUARD to make the iommu implementation more consistent. Signed-off-by: Clement Mathieu--Drif <clement.mathieu--drif@eviden.com> Message-Id: <20250430124750.240412-2-clement.mathieu--drif@eviden.com> Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
77a9408fc7
commit
b1c84782bf
1 changed files with 1 additions and 9 deletions
|
|
@ -1728,8 +1728,6 @@ static bool vtd_as_pt_enabled(VTDAddressSpace *as)
|
|||
static bool vtd_switch_address_space(VTDAddressSpace *as)
|
||||
{
|
||||
bool use_iommu, pt;
|
||||
/* Whether we need to take the BQL on our own */
|
||||
bool take_bql = !bql_locked();
|
||||
|
||||
assert(as);
|
||||
|
||||
|
|
@ -1746,9 +1744,7 @@ static bool vtd_switch_address_space(VTDAddressSpace *as)
|
|||
* from vtd_pt_enable_fast_path(). However the memory APIs need
|
||||
* it. We'd better make sure we have had it already, or, take it.
|
||||
*/
|
||||
if (take_bql) {
|
||||
bql_lock();
|
||||
}
|
||||
BQL_LOCK_GUARD();
|
||||
|
||||
/* Turn off first then on the other */
|
||||
if (use_iommu) {
|
||||
|
|
@ -1801,10 +1797,6 @@ static bool vtd_switch_address_space(VTDAddressSpace *as)
|
|||
memory_region_set_enabled(&as->iommu_ir_fault, false);
|
||||
}
|
||||
|
||||
if (take_bql) {
|
||||
bql_unlock();
|
||||
}
|
||||
|
||||
return use_iommu;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue