diff options
author | Matt Wilson <[email protected]> | 2013-11-20 12:11:35 -0800 |
---|---|---|
committer | Konrad Rzeszutek Wilk <[email protected]> | 2013-11-26 13:20:52 -0500 |
commit | 14883a75ec76b44759385fb12629f4a0f1aef4e3 (patch) | |
tree | 54c9327f00ff2df0fd238446acbb6ba776cfbdc7 | |
parent | f9c7ec1649607d68a47ab99e2ebb3379a2016157 (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.c | 6 |
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(); |