On Wed, 2011-07-27 at 12:17 +0200, Peter Zijlstra wrote: > On Wed, 2011-07-27 at 11:09 +0100, David Howells wrote: > > Can you inline this for the NOMMU case please? > > --- > Subject: mm: Fix fixup_user_fault() for MMU=n > > In commit 2efaca927 ("mm/futex: fix futex writes on archs with SW > tracking of dirty & young") we forgot about MMU=n. This patch fixes > that. > > Signed-off-by: Peter Zijlstra <a.p.zijls...@chello.nl>
Hoping the BUG() isn't trippable by userspace but then it's no mmu, it's not like we care what userspace can do right :-) Acked-by: Benjamin Herrenschmidt <b...@kernel.crashing.org> Thanks ! Cheers, Ben. > --- > Index: linux-2.6/include/linux/mm.h > =================================================================== > --- linux-2.6.orig/include/linux/mm.h > +++ linux-2.6/include/linux/mm.h > @@ -962,6 +962,8 @@ int invalidate_inode_page(struct page *p > #ifdef CONFIG_MMU > extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, > unsigned long address, unsigned int flags); > +extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, > + unsigned long address, unsigned int fault_flags); > #else > static inline int handle_mm_fault(struct mm_struct *mm, > struct vm_area_struct *vma, unsigned long address, > @@ -971,6 +973,14 @@ static inline int handle_mm_fault(struct > BUG(); > return VM_FAULT_SIGBUS; > } > +static inline int fixup_user_fault(struct task_struct *tsk, > + struct mm_struct *mm, unsigned long address, > + unsigned int fault_flags) > +{ > + /* should never happen if there's no MMU */ > + BUG(); > + return -EFAULT; > +} > #endif > > extern int make_pages_present(unsigned long addr, unsigned long end); > @@ -988,8 +998,6 @@ int get_user_pages(struct task_struct *t > int get_user_pages_fast(unsigned long start, int nr_pages, int write, > struct page **pages); > struct page *get_dump_page(unsigned long addr); > -extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, > - unsigned long address, unsigned int fault_flags); > > extern int try_to_release_page(struct page * page, gfp_t gfp_mask); > extern void do_invalidatepage(struct page *page, unsigned long offset); > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev