Hello Joonsoo, 2015-02-16 5:43 GMT+01:00 Joonsoo Kim <js1304@xxxxxxxxx>: > > Hello, > > Sorry for my mistake. > Problem happens because when we allocate memory through > __get_free_pages(), refcount of each pages is not 1 except > head page. Below modification will fix your problem. Could you > test it, please? I just tested it, and confirm it fixes the regression. You can add my: Tested-by: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx> Thanks for the quick fix! Maxime > > Thanks. > > ------------>8------------- > diff --git a/mm/nommu.c b/mm/nommu.c > index 28bd8c4..ff6c1e2 100644 > --- a/mm/nommu.c > +++ b/mm/nommu.c > @@ -1189,11 +1189,9 @@ static int do_mmap_private(struct vm_area_struct *vma, > if (sysctl_nr_trim_pages && total - point >= sysctl_nr_trim_pages) { > total = point; > kdebug("try to alloc exact %lu pages", total); > - base = alloc_pages_exact(len, GFP_KERNEL); > - } else { > - base = (void *)__get_free_pages(GFP_KERNEL, order); > } > > + base = alloc_pages_exact(total << PAGE_SHIFT, GFP_KERNEL); > if (!base) > goto enomem; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>