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

Pearson, Greg
2012-06-20T15:22:00Z

On 06/19/2012 05:00 PM, Andrew Morton wrote:
> 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.
>
Having the fix in 3.4 would be good for us, as we do plan to test on the
latest stable kernel.

If there is anything I can do to help with that please let me know.

Thanks

--
Greg