[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4E08EAE8.6060805@linux.intel.com>
Date: Mon, 27 Jun 2011 13:41:12 -0700
From: Darren Hart <dvhart@...ux.intel.com>
To: Peter Zijlstra <peterz@...radead.org>
CC: Shawn Bohrer <sbohrer@...advisors.com>,
KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
eric.dumazet@...il.com, david@...advisors.com,
linux-kernel@...r.kernel.org, zvonler@...advisors.com,
hughd@...gle.com, tglx@...utronix.de, mingo@...e.hu
Subject: Re: [PATCH v2] futex: Fix regression with read only mappings
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists