[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] linux-user: Fix stale tbs after mmap
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] [PATCH] linux-user: Fix stale tbs after mmap |
Date: |
Mon, 7 May 2012 12:58:55 +0200 |
On 07.05.2012, at 12:37, Peter Maydell wrote:
> On 7 May 2012 10:30, Alexander Graf <address@hidden> wrote:
>> @@ -587,6 +587,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int
>> prot,
>> page_dump(stdout);
>> printf("\n");
>> #endif
>> + tb_invalidate_phys_page_range(start, start + len, 0);
>> mmap_unlock();
>> return start;
>
> The comment at the top of tb_invalidate_phys_page_range() says
> "start and end must refer to the same physical page" -- is it
> out of date or does that not apply to user-mode?
:(
No, you're right. It only flushes the first page.
> Do you need to also invalidate the range on munmap() and
> mprotect-to-not-executable in order to correctly fault on
> the case of:
> map something
> execute it
> unmap it
> try to execute it again
>
> ? (haven't tested that case but it seems like it might be an issue)
I'm not sure. But it's an unrelated issue either way, right? :)
Could you please try to quickly write a test case for this one while I fix the
patch?
Alex