Re: [PATCH v2] futex: Fix regression with read only mappings

From: Darren Hart
Date: Mon Jun 27 2011 - 16:44:55 EST




On 06/27/2011 11:15 AM, Peter Zijlstra wrote:
> On Mon, 2011-06-27 at 11:40 -0500, Shawn Bohrer wrote:
>>>> if (PageAnon(page_head)) {
>>>
>>> This bit needs a comment too (unless I am the only one to whom this
>> was
>>> non-obvious), maybe:
>>>
>>>
>>> /*
>>> * A read-only anonymous page implies a COW on a
>>> * MAP_PRIVATE mapping. There is no sane use-case
>>> * for this scenario, return -EFAULT to userspace.
>>> */
>>
>> Your comment is wrong. Unfortunately the code is completly
>> non-obvious to me as well, and I have no idea why it is there. This
>> little snippet came from Peter's suggested fix in:
>>
>> https://lkml.org/lkml/2011/6/6/368
>>
>> Sadly Peter's gone silent and I'm left wondering if he knew some
>> corner case that should return -EFAULT with a RO anonymous page or if
>> he _thought_ this was preventing RO MAP_PRIVATE mappings. If it is
>> the latter then this block can be removed because it does NOT do that.
>>>> + if (ro) {
>>>> + err = -EFAULT;
>>>> + goto out;
>>>> + }
>>>> +
>
> Peter simply gets too much email.. anyway, the reason I put that there
> is that a RO Anon page will never change and is thus a little pointless
> to use for futex ops.
>

Right, and that was the logic I was trying to document. Shawn, how is my
comment above wrong? A read-only anonymous page but itself doesn't imply
a COW, but it does it does in the context of this code from my reading.


--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/