x86/EPT: correct double unmap_domain_page() on error path

c/s 3d90d6e6 "x86/EPT: split super pages upon mismatching memory types"
accidentally introduced an error path where the epte domain page would be
unmapped twice if splitting the superpage failed.

Only unmap the page if the loop is to be continued.  When breaking from the
loop, the page will be unmapped by the subsequent code.

Coverity-ID: 1203047
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Andrew Cooper authored and Jan Beulich committed 2014-04-22 14:45:10 +02:00
1 parent 816f622482
commit 75e253bb78
1 file changed
+1 -1
+1 -1
View File
@@ -351,9 +351,9 @@ bool_t ept_handle_misconfig(uint64_t gpa)
e.sa_p2mt == p2m_mmio_direct);
if ( unlikely(emt < 0) )
{
unmap_domain_page(epte);
if ( ept_split_super_page(p2m, &e, level, level - 1) )
{
unmap_domain_page(epte);
mfn = e.mfn;
continue;
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.