Messages in this thread | | | From | Kees Cook <> | Date | Tue, 3 Jan 2017 13:48:03 -0800 | Subject | Re: sg_io HARDENED_USERCOPY_PAGESPAN trace |
| |
On Fri, Dec 30, 2016 at 7:10 AM, Christoph Hellwig <hch@infradead.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
| |