[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGXu5jKeeR3dq+FvRrgdmpMmHgFHjYx-bDfaB+_eSPmDNboY0g@mail.gmail.com>
Date: Tue, 3 Jan 2017 13:48:03 -0800
From: Kees Cook <keescook@...omium.org>
To: Christoph Hellwig <hch@...radead.org>
Cc: Dave Jones <davej@...emonkey.org.uk>,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Re: sg_io HARDENED_USERCOPY_PAGESPAN trace
On Fri, Dec 30, 2016 at 7:10 AM, Christoph Hellwig <hch@...radead.org> wrote:
> On Fri, Dec 30, 2016 at 10:01:39AM -0500, Dave Jones wrote:
>> I threw this debug printk into the pagespan code to see what exactly
>> it was complaining about..
>>
>> ptr:ffff88042614cff8 end:ffff88042614d003 n:c
>>
>> so it was copying 12 bytes that spanned two pages.
>> >From my reading of the config option help text, this thing is
>> complaining that wasn't allocated with __GFP_COMP maybe ?
There are a lot of cases of "missing" __GFP_COMP, which is why
HARDENED_USERCOPY_PAGESPAN defaults to "n".
> If this is on a devie using blk-mq the block core will use high
> order allocations (as high as possible) to allocate the requests
> for each queue, so struct request could very well span multiple
> pages. But I don't see what __GFP_COMP would have to do with
> user copy annoations. As all requests for a queue are freed
> togeth again there is no point in setting __GFP_COMP for the
> request allocations.
Does it hurt anything to mark these pages as allocated "together" via
__GFP_COMP?
-Kees
--
Kees Cook
Nexus Security
Powered by blists - more mailing lists