Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14883a75 authored by Matt Wilson's avatar Matt Wilson Committed by Konrad Rzeszutek Wilk
Browse files

xen/gnttab: leave lazy MMU mode in the case of a m2p override failure



Commit f62805f1 introduced a bug where lazy MMU mode isn't exited if a
m2p_add/remove_override call fails.

Acked-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
Reviewed-by: default avatarAnthony Liguori <aliguori@amazon.com>
Cc: xen-devel@lists.xenproject.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: default avatarMatt Wilson <msw@amazon.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: stable@vger.kernel.org
parent f9c7ec16
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -930,9 +930,10 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
		ret = m2p_add_override(mfn, pages[i], kmap_ops ?
				       &kmap_ops[i] : NULL);
		if (ret)
			return ret;
			goto out;
	}

 out:
	if (lazy)
		arch_leave_lazy_mmu_mode();

@@ -969,9 +970,10 @@ int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops,
		ret = m2p_remove_override(pages[i], kmap_ops ?
				       &kmap_ops[i] : NULL);
		if (ret)
			return ret;
			goto out;
	}

 out:
	if (lazy)
		arch_leave_lazy_mmu_mode();