Loading arch/s390/kvm/pv.c +6 −2 Original line number Diff line number Diff line Loading @@ -411,8 +411,12 @@ int kvm_s390_pv_deinit_cleanup_all(struct kvm *kvm, u16 *rc, u16 *rrc) u16 _rc, _rrc; int cc = 0; /* Make sure the counter does not reach 0 before calling s390_uv_destroy_range */ atomic_inc(&kvm->mm->context.protected_count); /* * Nothing to do if the counter was already 0. Otherwise make sure * the counter does not reach 0 before calling s390_uv_destroy_range. */ if (!atomic_inc_not_zero(&kvm->mm->context.protected_count)) return 0; *rc = 1; /* If the current VM is protected, destroy it */ Loading arch/s390/mm/gmap.c +1 −0 Original line number Diff line number Diff line Loading @@ -2853,6 +2853,7 @@ int s390_replace_asce(struct gmap *gmap) page = alloc_pages(GFP_KERNEL_ACCOUNT, CRST_ALLOC_ORDER); if (!page) return -ENOMEM; page->index = 0; table = page_to_virt(page); memcpy(table, gmap->table, 1UL << (CRST_ALLOC_ORDER + PAGE_SHIFT)); Loading Loading
arch/s390/kvm/pv.c +6 −2 Original line number Diff line number Diff line Loading @@ -411,8 +411,12 @@ int kvm_s390_pv_deinit_cleanup_all(struct kvm *kvm, u16 *rc, u16 *rrc) u16 _rc, _rrc; int cc = 0; /* Make sure the counter does not reach 0 before calling s390_uv_destroy_range */ atomic_inc(&kvm->mm->context.protected_count); /* * Nothing to do if the counter was already 0. Otherwise make sure * the counter does not reach 0 before calling s390_uv_destroy_range. */ if (!atomic_inc_not_zero(&kvm->mm->context.protected_count)) return 0; *rc = 1; /* If the current VM is protected, destroy it */ Loading
arch/s390/mm/gmap.c +1 −0 Original line number Diff line number Diff line Loading @@ -2853,6 +2853,7 @@ int s390_replace_asce(struct gmap *gmap) page = alloc_pages(GFP_KERNEL_ACCOUNT, CRST_ALLOC_ORDER); if (!page) return -ENOMEM; page->index = 0; table = page_to_virt(page); memcpy(table, gmap->table, 1UL << (CRST_ALLOC_ORDER + PAGE_SHIFT)); Loading