Revision 77a8f1a5
ID | 77a8f1a5125457d845fac6aa0c2e1e2681d94f07 |
linux-user: Fix stale tbs after mmap
If we execute linux-user code that does the following:
- A = mmap()
- execute code in A
- munmap(A)
- B = mmap(), but mmap returns the same address as A
- execute code in B
we end up executing a stale cached tb that contains translated code
from A, while we want new code from B.
This patch adds a TB flush for mmap'ed regions, before we return them,
avoiding the whole issue. It also adds a flush for munmap, so that we
don't execute stale TBs instead of getting a segfault.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Riku Voipio <riku.voipio@linaro.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Files
- added
- modified
- copied
- renamed
- deleted