Re: [PATCH] mm: mmap: Simplify the failure return working flow

From: gchen gchen
Date: Wed Aug 19 2015 - 21:34:32 EST


<br>On Tue, 18 Aug 2015 15:57:08 -0700 akpm@xxxxxxxxxxxxxxxxxxxx wrote:<br>&gt;<br>&gt; On Wed, 19 Aug 2015 06:27:58 +0800 Chen Gang<br>&gt; &lt;xili_gchen_5257@xxxxxxxxxxx&gt; wrote:<br>&gt;<br>&gt;&gt; From: Chen Gang &lt;xili_gchen_5257@xxxxxxxxxxx&gt;<br>&gt;<br>&gt; As sent, this patch is From:you@hotmail and Signed-off-by:you@gmail.<br>&gt;<br>&gt; This is peculiar. I'm assuming that it should have been From:you@gmail and<br>&gt; I have made that change to my copy of the patch.<br>&gt;<br>&gt; You can do this yourself by putting an explicit From: line at the start<br>&gt; of the changelog.<br>&gt;<br><br>Yes, it is really peculiar, the reason is gmail is not stable in China.<br>I have to send mail in my hotmail address.<br><br>But I still want to use my gmail as Signed-off-by, since I have already<br>used it, and also its name is a little formal than my hotmail.<br><br>Welcome any ideas, suggestions and completions for it (e.g. if it is<br>necessary to let send mail and Signed-off-by mail be the same, I shall<br>try).<br><br>[...]<br><br>&gt; So,<br>&gt;<br>&gt; --- a/mm/mmap.c~mm-mmap-simplify-the-failure-return-working-flow-fix<br>&gt; +++ a/mm/mmap.c<br>&gt; @@ -2952,7 +2952,7 @@ struct vm_area_struct *copy_vma(struct v<br>&gt; } else {<br>&gt; new_vma = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);<br>&gt; if (!new_vma)<br>&gt; - return NULL;<br>&gt; + goto out;<br>&gt; *new_vma = *vma;<br>&gt; new_vma-&gt;vm_start = addr;<br>&gt; new_vma-&gt;vm_end = addr + len;<br>&gt; @@ -2971,10 +2971,11 @@ struct vm_area_struct *copy_vma(struct v<br>&gt; }<br>&gt; return new_vma;<br>&gt;<br>&gt; - out_free_mempol:<br>&gt; +out_free_mempol:<br>&gt; mpol_put(vma_policy(new_vma));<br>&gt; - out_free_vma:<br>&gt; +out_free_vma:<br>&gt; kmem_cache_free(vm_area_cachep, new_vma);<br>&gt; +out:<br>&gt; return NULL;<br>&gt; }<br>&gt;<br><br>It is OK to me, thanks.<br><br>During these days (2-4 months), I shall try to make some patches for<br>Linux mm:<br><br> - I am learning Linux kernel mmu, so I can re-use part of code to user<br> mode (add softmmu to qemu linux user in my working time). Then I can<br> try some mm patches when I am reading related code.<br><br> - At present, cross-building various archs with allmodconfig looks OK<br> (have no many issues), so for me, I can stop and start another parts<br> (e.g. mmu, loongson machine of mips arch, ...).<br><br>Welcome any ideas, suggestions and completions for it:<br><br> - Assume I am not quite familiar with mmu -- in honest, I feel I am<br> really not.<br><br> - Is it possible to build the related 'softmmu' as a module which can<br> be used by both kernel mode and user mode (if really it is, I shall<br> try to perform it -- I can do it in my working time).<br><br> - ...<br><br>Thanks.<br>--<br>Chen Gang<br><br>Open, share, and attitude like air, water, and life which God blessed<br>