Re: [PATCH v4] mm/memblock: fix overlapping allocation when doubling reserved array

Andrew Morton
2012-06-19T23:00:04Z

On Tue, 19 Jun 2012 22:35:08 +0000
"Pearson, Greg" <greg.pearson@hp.com> wrote:

> On 06/19/2012 04:14 PM, Andrew Morton wrote:
> > On Mon, 18 Jun 2012 17:47:58 -0600
> > Greg Pearson <greg.pearson@hp.com> wrote:
> >
> >> The __alloc_memory_core_early() routine will ask memblock for a range
> >> of memory then try to reserve it. If the reserved region array lacks
> >> space for the new range, memblock_double_array() is called to allocate
> >> more space for the array. If memblock is used to allocate memory for
> >> the new array it can end up using a range that overlaps with the range
> >> originally allocated in __alloc_memory_core_early(), leading to possible
> >> data corruption.
> > OK, but we have no information about whether it *does* lead to data
> > corruption. Are there workloads which trigger this? End users who are
> > experiencing problems?
> >
> > See, I (and others) need to work out whether this patch should be
> > included in 3.5 or even earlier kernels. To do that we often need the
> > developer to tell us what the impact of the bug is upon users. Please
> > always include this info when fixing bugs.
>
> Andrew,
>
> I'm currently working on a prototype system that exhibits the data
> corruption problem when doubling the reserved array while booting the
> system. This system will be a released product in the future.

OK. I guess we can slip this fix into 3.5. Do you think it should be
backported? I guess "yes", as you will probably want to run 3.4 or
earlier kernels on that machine.