struct kvm_enc_region *range)
{
struct enc_region *region;
- int ret;
/* If kvm is mirroring encryption context it isn't responsible for it */
if (is_mirroring_enc_context(kvm))
return -EINVAL;
- mutex_lock(&kvm->lock);
+ guard(mutex)(&kvm->lock);
- if (!sev_guest(kvm)) {
- ret = -ENOTTY;
- goto failed;
- }
+ if (!sev_guest(kvm))
+ return -ENOTTY;
region = find_enc_region(kvm, range);
- if (!region) {
- ret = -EINVAL;
- goto failed;
- }
+ if (!region)
+ return -EINVAL;
sev_writeback_caches(kvm);
__unregister_enc_region_locked(kvm, region);
- mutex_unlock(&kvm->lock);
return 0;
-
-failed:
- mutex_unlock(&kvm->lock);
- return ret;
}
int sev_vm_copy_enc_context_from(struct kvm *kvm, unsigned int source_fd)