On Mon, Jul 13, 2015 at 09:23:41AM -0400, Jeff Moyer wrote:
> Matthew Wilcox <[email protected]> writes:
> 
> > +static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
> > +           pmd_t *pmd, unsigned long pfn, pgprot_t prot, bool write)
> > +{
> > +   return VM_FAULT_NOPAGE;
> > +}
> 
> What's the point of the return value?

Good point.  Originally, it paralleled insert_pfn() in mm/memory.c, but it
became apparent that the return code of 0 or -Exxx was useless, and in 
converting insert_pfn_pmd over to VM_FAULT_ codes, all possible return codes 
were
going to be VM_FAULT_NOPAGE.  It didn't occur to me to take it one step further 
and make the function return void.

It doesn't make much difference either way:

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 26d0fc1..5ffdcaa 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -837,7 +837,7 @@ int do_huge_pmd_anonymous_page(struct mm_struct *mm, struct 
vm_area_struct *vma,
        return 0;
 }
 
-static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
+static void insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
                pmd_t *pmd, unsigned long pfn, pgprot_t prot, bool write)
 {
        struct mm_struct *mm = vma->vm_mm;
@@ -855,7 +855,6 @@ static int insert_pfn_pmd(struct vm_area_struct *vma, 
unsigned long addr,
                update_mmu_cache_pmd(vma, addr, pmd);
        }
        spin_unlock(ptl);
-       return VM_FAULT_NOPAGE;
 }
 
 int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
@@ -877,7 +876,8 @@ int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned 
long addr,
                return VM_FAULT_SIGBUS;
        if (track_pfn_insert(vma, &pgprot, pfn))
                return VM_FAULT_SIGBUS;
-       return insert_pfn_pmd(vma, addr, pmd, pfn, pgprot, write);
+       insert_pfn_pmd(vma, addr, pmd, pfn, pgprot, write);
+       return VM_FAULT_NOPAGE;
 }
 
 int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,


I suppose it's slightly cleaner.  I'll integrate this for the next release.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to