]> git.proxmox.com Git - qemu.git/commit
linux-user: Unlock mmap_lock when resuming guest from page_unprotect
authorAlexander Graf <agraf@suse.de>
Sat, 6 Jul 2013 12:17:57 +0000 (14:17 +0200)
committerRiku Voipio <riku.voipio@linaro.org>
Tue, 23 Jul 2013 14:28:28 +0000 (17:28 +0300)
commitd02532f08e207419e412ea7cd4eb8b36f04f426d
tree1028ecb34c4b01f3c74967116225aed8101e225a
parentb24c882b9435d0745679a96571027a2c92065e4f
linux-user: Unlock mmap_lock when resuming guest from page_unprotect

The page_unprotect() function is running everything locked. Before every
potential exit path of the function mmap_unlock() gets called to make sure
we don't leak the lock.

However, the function calls tb_invalidate_phys_page() which again can
exit a signal through longjmp, leaving our mmap_unlock() attempts in vain.

Add a hint to tb_invalidate_phys_page() that we need to unlock before we
can leave back into guest context, so that we don't leak the lock.

This fixes 16-bit i386 wine programs running in linux-user for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
translate-all.c