Looks obviously correct. The old code was just very wrong. Acked-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Linus On Sat, Mar 7, 2015 at 7:20 AM, Mel Gorman <mgorman@xxxxxxx> wrote: > The wrong value is being returned by change_huge_pmd since commit > 10c1045f28e8 ("mm: numa: avoid unnecessary TLB flushes when setting > NUMA hinting entries") which allows a fallthrough that tries to adjust > non-existent PTEs. This patch corrects it. > > Signed-off-by: Mel Gorman <mgorman@xxxxxxx> > --- > mm/huge_memory.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index fc00c8cb5a82..194c0f019774 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1482,6 +1482,7 @@ int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, > > if (__pmd_trans_huge_lock(pmd, vma, &ptl) == 1) { > pmd_t entry; > + ret = 1; > > /* > * Avoid trapping faults against the zero page. The read-only > @@ -1490,11 +1491,10 @@ int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, > */ > if (prot_numa && is_huge_zero_pmd(*pmd)) { > spin_unlock(ptl); > - return 0; > + return ret; > } > > if (!prot_numa || !pmd_protnone(*pmd)) { > - ret = 1; > entry = pmdp_get_and_clear_notify(mm, addr, pmd); > entry = pmd_modify(entry, newprot); > ret = HPAGE_PMD_NR; > -- > 2.1.2 > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs