aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Wilson <[email protected]>2013-11-20 12:11:35 -0800
committerKonrad Rzeszutek Wilk <[email protected]>2013-11-26 13:20:52 -0500
commit14883a75ec76b44759385fb12629f4a0f1aef4e3 (patch)
tree54c9327f00ff2df0fd238446acbb6ba776cfbdc7
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 <[email protected]> Cc: Boris Ostrovsky <[email protected]> Reviewed-by: David Vrabel <[email protected]> Reviewed-by: Anthony Liguori <[email protected]> Cc: [email protected] Cc: [email protected] Signed-off-by: Matt Wilson <[email protected]> Signed-off-by: Konrad Rzeszutek Wilk <[email protected]> CC: [email protected]
-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();