summaryrefslogtreecommitdiff
path: root/drivers/xen
diff options
context:
space:
mode:
authorMatt Wilson <msw@amazon.com>2013-11-20 12:11:35 -0800
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2013-11-26 13:20:52 -0500
commit14883a75ec76b44759385fb12629f4a0f1aef4e3 (patch)
tree54c9327f00ff2df0fd238446acbb6ba776cfbdc7 /drivers/xen
parentf9c7ec1649607d68a47ab99e2ebb3379a2016157 (diff)
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: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Anthony Liguori <aliguori@amazon.com> Cc: xen-devel@lists.xenproject.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Matt Wilson <msw@amazon.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> CC: stable@vger.kernel.org
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/grant-table.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 62ccf5424ba8..028387192b60 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -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();