arm_syscall cacheflush breakage on VIPT platforms

Imre Deak imre.deak at nokia.com
Mon Sep 28 07:00:29 EDT 2009


On Mon, Sep 28, 2009 at 12:28:15PM +0200, ext Russell King - ARM Linux wrote:
> On Mon, Sep 28, 2009 at 01:10:44PM +0300, Imre Deak wrote:
> > On Mon, Sep 28, 2009 at 11:59:45AM +0200, ext Russell King - ARM Linux wrote:
> > > The problem has nothing to do with holding of mmap_sem
> > > AT ALL.  In fact, do_cache_op needs to hold mmap_sem itself, to prevent
> > > the VMA going away beneath it.  That's not going to stop it generating
> > > faults, and it's not going to stop it oopsing.
> > > 
> > > The problem is that we don't have any fixup in place for this situation.
> > 
> > Yes, agreed. What I stated is that for _triggerring_ the error message you
> > need mmap_sem.
> > 
> > > There is nothing wrong in the page fault handler.
> > 
> > Agreed. Only a warning would be nice to make similar cases more apparent
> > even if mmap_sem is not held.
> 
> Page faults can happen at other times, and validly be fixed up.  vmalloc
> space as an example.  You can't assume that a kernel mode page fault
> without an exception fixup is invalid.

Yes, but vmalloc is handled separately in do_translation_fault. In do_page_fault
you'll need a fixup for kernel mode page fault.

--Imre




More information about the linux-arm-kernel mailing list