On Fri, May 25, 2012 at 7:12 AM, Andrew Morton <<a href="mailto:akpm@linux-foundation.org">akpm@linux-foundation.org</a>> wrote:<br>> On Thu, 24 May 2012 17:32:56 +0900<br>> KyongHo <<a href="mailto:pullip.cho@samsung.com">pullip.cho@samsung.com</a>> wrote:<br>
><br>>> vmalloc_init() adds 'vmap_area's for early 'vm_struct's.<br>>> This patch fixes vmalloc_init() to correctly initialize<br>>> vmap_area for the given vm_struct.<br>>><br>><br>
> <daily message><br>> Insufficient information.  When fixing a bug please always always<br>> always describe the user-visible effects of the bug.  Does the kernel<br>> instantly crash?  Is it a comestic cleanliness thing which has no<br>
> effect?  Something in between?  I have simply no idea, and am dependent<br>> upon you to tell me.<br><br>Sorry for unkind commit message :)<br>Why this patch is needed is described by Olav<br>in the previous replies. <br>
<br>><br>>> --- a/mm/vmalloc.c<br>>> +++ b/mm/vmalloc.c<br>>> @@ -1185,9 +1185,10 @@ void __init vmalloc_init(void)<br>>>       /* Import existing vmlist entries. */<br>>>       for (tmp = vmlist; tmp; tmp = tmp->next) {<br>
>>               va = kzalloc(sizeof(struct vmap_area), GFP_NOWAIT);<br>>> -             va->flags = tmp->flags | VM_VM_AREA;<br>>> +             va->flags = VM_VM_AREA;<br>><br>> This change is a mystery.  Why do we no longer transfer ->flags?<br>
><br>>>               va->va_start = (unsigned long)tmp->addr;<br>>>               va->va_end = va->va_start + tmp->size;<br>>> +             va->vm = tmp;<br>><br>> OK, I can see how this might be important.  But why did you find it<br>
> necessary?  Why was this change actually needed?<br><br>If it is not set, find_vm_area() with the early vm regions will always fail.<br><br>If the early vm regions must be neither found by find_vm_area()<br>nor removed by remove_vm_area(), va->vm must be NULL.<br>
<br>Please advise me what is right value for va->vm here :)<br><br>><br>>>               __insert_vmap_area(va);<br>>>       }<br>><br>> --<br>> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in<br>
> the body of a message to <a href="mailto:majordomo@vger.kernel.org">majordomo@vger.kernel.org</a><br>> More majordomo info at  <a href="http://vger.kernel.org/majordomo-info.html">http://vger.kernel.org/majordomo-info.html</a><br>
<br>