Commit 173d6f64 authored by Anirudh Rayabharam (Microsoft)'s avatar Anirudh Rayabharam (Microsoft) Committed by Wei Liu
Browse files

mshv: release mutex on region invalidation failure



In the region invalidation failure path in
mshv_region_interval_invalidate(), the region mutex is not released. Fix
it by releasing the mutex in the failure path.

Signed-off-by: default avatarAnirudh Rayabharam (Microsoft) <anirudh@anirudhrb.com>
Fixes: b9a66cd5 ("mshv: Add support for movable memory regions")
Acked-by: default avatarStanislav Kinsburskii <skinsburskii@linux.microsoft.com>
Reviewed-by: default avatarRoman Kisel <vdso@mailbox.org>
Signed-off-by: default avatarWei Liu <wei.liu@kernel.org>
parent 52f758ed
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -511,7 +511,7 @@ static bool mshv_region_interval_invalidate(struct mmu_interval_notifier *mni,
	ret = mshv_region_remap_pages(region, HV_MAP_GPA_NO_ACCESS,
				      page_offset, page_count);
	if (ret)
		goto out_fail;
		goto out_unlock;

	mshv_region_invalidate_pages(region, page_offset, page_count);

@@ -519,6 +519,8 @@ static bool mshv_region_interval_invalidate(struct mmu_interval_notifier *mni,

	return true;

out_unlock:
	mutex_unlock(&region->mutex);
out_fail:
	WARN_ONCE(ret,
		  "Failed to invalidate region %#llx-%#llx (range %#lx-%#lx, event: %u, pages %#llx-%#llx, mm: %#llx): %d\n",