]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: x86: hyper-v: Use guard() instead of mutex_lock() to simplify code
authorLiao Yuanhong <liaoyuanhong@vivo.com>
Mon, 1 Sep 2025 13:16:04 +0000 (21:16 +0800)
committerSean Christopherson <seanjc@google.com>
Tue, 16 Sep 2025 19:55:11 +0000 (12:55 -0700)
Use guard(mutex) instead of mutex_lock/mutex_unlock pair to simplify the
error handling when setting up the TSC page for a Hyper-V guest.

No functional change intended.

Signed-off-by: Liao Yuanhong <liaoyuanhong@vivo.com>
Link: https://lore.kernel.org/r/20250901131604.646415-1-liaoyuanhong@vivo.com
[sean: tweak changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/hyperv.c

index 72b19a88a776386ece65fe7977b11873872b64d2..a471900c732514715adace9e29021b10f4bb37e7 100644 (file)
@@ -1168,15 +1168,15 @@ void kvm_hv_setup_tsc_page(struct kvm *kvm,
        BUILD_BUG_ON(sizeof(tsc_seq) != sizeof(hv->tsc_ref.tsc_sequence));
        BUILD_BUG_ON(offsetof(struct ms_hyperv_tsc_page, tsc_sequence) != 0);
 
-       mutex_lock(&hv->hv_lock);
+       guard(mutex)(&hv->hv_lock);
 
        if (hv->hv_tsc_page_status == HV_TSC_PAGE_BROKEN ||
            hv->hv_tsc_page_status == HV_TSC_PAGE_SET ||
            hv->hv_tsc_page_status == HV_TSC_PAGE_UNSET)
-               goto out_unlock;
+               return;
 
        if (!(hv->hv_tsc_page & HV_X64_MSR_TSC_REFERENCE_ENABLE))
-               goto out_unlock;
+               return;
 
        gfn = hv->hv_tsc_page >> HV_X64_MSR_TSC_REFERENCE_ADDRESS_SHIFT;
        /*
@@ -1192,7 +1192,7 @@ void kvm_hv_setup_tsc_page(struct kvm *kvm,
                        goto out_err;
 
                hv->hv_tsc_page_status = HV_TSC_PAGE_SET;
-               goto out_unlock;
+               return;
        }
 
        /*
@@ -1228,12 +1228,10 @@ void kvm_hv_setup_tsc_page(struct kvm *kvm,
                goto out_err;
 
        hv->hv_tsc_page_status = HV_TSC_PAGE_SET;
-       goto out_unlock;
+       return;
 
 out_err:
        hv->hv_tsc_page_status = HV_TSC_PAGE_BROKEN;
-out_unlock:
-       mutex_unlock(&hv->hv_lock);
 }
 
 void kvm_hv_request_tsc_page_update(struct kvm *kvm)