Re: [PATCH 13/17] prmem: linked list: disable layout randomization

From: Peter Zijlstra
Date: Tue Oct 30 2018 - 11:40:04 EST


On Fri, Oct 26, 2018 at 03:17:07AM -0700, Matthew Wilcox wrote:
> On Fri, Oct 26, 2018 at 11:32:05AM +0200, Peter Zijlstra wrote:
> > On Wed, Oct 24, 2018 at 12:35:00AM +0300, Igor Stoppa wrote:
> > > Some of the data structures used in list management are composed by two
> > > pointers. Since the kernel is now configured by default to randomize the
> > > layout of data structures soleley composed by pointers, this might
> > > prevent correct type punning between these structures and their write
> > > rare counterpart.
> >
> > 'might' doesn't really work for me. Either it does or it does not.
>
> He means "Depending on the random number generator, the two pointers
> might be AB or BA. If they're of opposite polarity (50% of the time),
> it _will_ break, and 50% of the time it _won't_ break."

So don't do that then. If he were to include struct list_head inside his
prlist_head, then there is only the one randomization and things will
just work.

Also, I really don't see why he needs that second type and all that type
punning crap in the first place.