On Tue, 2024-03-26 at 23:38 -0700, Dan Williams wrote: > > +unsigned long > > +mm_get_unmapped_area(struct mm_struct *mm, struct file *file, > > + unsigned long addr, unsigned long len, > > + unsigned long pgoff, unsigned long flags) > > +{ > > Seems like a small waste to have all call sites now need to push an > additional @mm argument onto the stack just to figure out what function > to call. > > > + if (test_bit(MMF_TOPDOWN, &mm->flags)) > > + return arch_get_unmapped_area_topdown(file, addr, len, pgoff, flags); > > + return arch_get_unmapped_area(file, addr, len, pgoff, flags); > > This seems small enough to be amenable to a static inline, but that > would require exporting the arch calls which might be painful. > > Would it not be possible to drop the @mm argument and just reference > current->mm internal to this function? Just call this funcion > current_get_unmapped_area()? Hmm, you are right. The callers all pass current->mm. The mm argument could be removed.