[PATCH 4/4] ARM: idmap: use idmap_pgd when setting up mm for reboot

Will Deacon will.deacon at arm.com
Fri Nov 18 12:21:07 EST 2011


On Fri, Nov 18, 2011 at 04:56:24PM +0000, Catalin Marinas wrote:
> On 16 November 2011 16:48, Will Deacon <will.deacon at arm.com> wrote:
> >  void setup_mm_for_reboot(char mode)
> >  {
> > -       /*
> > -        * We need to access to user-mode page tables here. For kernel threads
> > -        * we don't have any user-mode mappings so we use the context that we
> > -        * "borrowed".
> > -        */
> > -       identity_mapping_add(current->active_mm->pgd, 0, TASK_SIZE);
> > +       /* Clean and invalidate L1. */
> > +       flush_cache_all();
> 
> Is the cache flushing needed here? The setup_mm_for_reboot callers do
> it after this function anyway (unless this is needed for VIVT
> caches?).

I initially added the cache flushing because we used to manipulate the page
tables at this point. We don't do that anymore, but as you say, if we have
a VIVT D-side then we do need that flush before switching to the new pgd.

One thing I will change is the following comment (/* Switch exclusively to kernel
mappings. */) because that's a bit confusing now.

Will



More information about the linux-arm-kernel mailing list