lkml.org 
[lkml]   [2010]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH v2 09/20] ARM: LPAE: Change setup_mm_for_reboot() to work with LPAE
On Fri, Nov 12, 2010 at 06:00:29PM +0000, Catalin Marinas wrote:
> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
> index 4147cc6..3784acc 100644
> --- a/arch/arm/mm/mmu.c
> +++ b/arch/arm/mm/mmu.c
> @@ -1098,13 +1098,16 @@ void setup_mm_for_reboot(char mode)
> if (cpu_architecture() <= CPU_ARCH_ARMv5TEJ && !cpu_is_xscale())
> base_pmdval |= PMD_BIT4;
>
> - for (i = 0; i < FIRST_USER_PGD_NR + USER_PTRS_PER_PGD; i++, pgd++) {
> + for (i = 0; i < TASK_SIZE >> PMD_SHIFT; i++) {
> unsigned long pmdval = (i << PMD_SHIFT) | base_pmdval;
> pmd_t *pmd;
> + unsigned long addr = i << PMD_SHIFT;
>
> - pmd = pmd_off(pgd, i << PMD_SHIFT);
> + pmd = pmd_off(pgd + pgd_index(addr), addr);
> pmd[0] = __pmd(pmdval);
> +#ifndef CONFIG_ARM_LPAE
> pmd[1] = __pmd(pmdval + (1 << (PMD_SHIFT - 1)));
> +#endif
> flush_pmd_entry(pmd);
> }

The same is required for the identity mapping code. If this uses that
code, the problem becomes localized there.


\
 
 \ /
  Last update: 2010-11-22 14:13    [W:0.217 / U:0.132 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site