From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 RESEND 10/17] ARM: LPAE: use phys_addr_t in switch_mm()
Date: Mon, 24 Sep 2012 15:05:15 +0100 [thread overview]
Message-ID: <20120924140515.GF23298@arm.com> (raw)
In-Reply-To: <1348242975-19184-11-git-send-email-cyril@ti.com>
On Fri, Sep 21, 2012 at 04:56:08PM +0100, Cyril Chemparathy wrote:
> This patch modifies the switch_mm() processor functions to use phys_addr_t.
> On LPAE systems, we now honor the upper 32-bits of the physical address that
> is being passed in, and program these into TTBR as expected.
>
> Signed-off-by: Cyril Chemparathy <cyril@ti.com>
> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
> ---
> arch/arm/include/asm/proc-fns.h | 4 ++--
> arch/arm/mm/proc-v7-3level.S | 17 +++++++++++++----
> 2 files changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/include/asm/proc-fns.h b/arch/arm/include/asm/proc-fns.h
> index f3628fb..75b5f14 100644
> --- a/arch/arm/include/asm/proc-fns.h
> +++ b/arch/arm/include/asm/proc-fns.h
> @@ -60,7 +60,7 @@ extern struct processor {
> /*
> * Set the page table
> */
> - void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm);
> + void (*switch_mm)(phys_addr_t pgd_phys, struct mm_struct *mm);
> /*
> * Set a possibly extended PTE. Non-extended PTEs should
> * ignore 'ext'.
> @@ -82,7 +82,7 @@ extern void cpu_proc_init(void);
> extern void cpu_proc_fin(void);
> extern int cpu_do_idle(void);
> extern void cpu_dcache_clean_area(void *, int);
> -extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);
> +extern void cpu_do_switch_mm(phys_addr_t pgd_phys, struct mm_struct *mm);
> #ifdef CONFIG_ARM_LPAE
> extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte);
> #else
> diff --git a/arch/arm/mm/proc-v7-3level.S b/arch/arm/mm/proc-v7-3level.S
> index 8de0f1d..c4f4251 100644
> --- a/arch/arm/mm/proc-v7-3level.S
> +++ b/arch/arm/mm/proc-v7-3level.S
> @@ -39,6 +39,14 @@
> #define TTB_FLAGS_SMP (TTB_IRGN_WBWA|TTB_S|TTB_RGN_OC_WBWA)
> #define PMD_FLAGS_SMP (PMD_SECT_WBWA|PMD_SECT_S)
>
> +#ifndef __ARMEB__
> +# define rpgdl r0
> +# define rpgdh r1
> +#else
> +# define rpgdl r1
> +# define rpgdh r0
> +#endif
> +
> /*
> * cpu_v7_switch_mm(pgd_phys, tsk)
> *
> @@ -47,10 +55,11 @@
> */
> ENTRY(cpu_v7_switch_mm)
> #ifdef CONFIG_MMU
> - ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id
> - and r3, r1, #0xff
> - mov r3, r3, lsl #(48 - 32) @ ASID
> - mcrr p15, 0, r0, r3, c2 @ set TTB 0
> + ldr r2, [r2, #MM_CONTEXT_ID] @ get mm->context.id
> + and r2, r2, #0xff
> + mov r2, r2, lsl #(48 - 32) @ ASID
> + orr rpgdh, rpgdh, r2 @ upper 32-bits of pgd phys
Can you do:
orr rpgdh, rpgdh, r2, lsl #(48 - 32)
--
Catalin
next prev parent reply other threads:[~2012-09-24 14:05 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-21 15:55 [PATCH v3 RESEND 00/17] LPAE fixes and extensions for Keystone Cyril Chemparathy
2012-09-21 15:55 ` Cyril Chemparathy
2012-09-21 15:55 ` [PATCH v3 RESEND 01/17] ARM: add mechanism for late code patching Cyril Chemparathy
2012-09-21 15:55 ` Cyril Chemparathy
2012-09-22 15:10 ` Nicolas Pitre
2012-09-22 15:10 ` Nicolas Pitre
2012-09-22 21:41 ` Cyril Chemparathy
2012-09-22 21:41 ` Cyril Chemparathy
2012-09-24 12:06 ` Dave Martin
2012-09-24 12:06 ` Dave Martin
2012-09-24 14:49 ` Cyril Chemparathy
2012-09-24 14:49 ` Cyril Chemparathy
2012-09-24 15:54 ` Dave Martin
2012-09-24 15:54 ` Dave Martin
2012-09-21 15:56 ` [PATCH v3 RESEND 02/17] ARM: add self test for runtime patch mechanism Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 03/17] ARM: use late patch framework for phys-virt patching Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 04/17] ARM: LPAE: use phys_addr_t on virt <--> phys conversion Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 13:09 ` Catalin Marinas
2012-09-24 13:57 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 05/17] ARM: LPAE: support 64-bit virt_to_phys patching Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-22 15:24 ` Nicolas Pitre
2012-09-22 15:24 ` Nicolas Pitre
2012-09-24 15:13 ` Catalin Marinas
2012-09-24 15:56 ` Nicolas Pitre
2012-09-24 20:59 ` Cyril Chemparathy
2012-09-24 21:20 ` Nicolas Pitre
2012-09-24 21:52 ` Catalin Marinas
2012-09-24 22:32 ` Nicolas Pitre
2012-09-24 22:40 ` Russell King - ARM Linux
2012-09-24 22:53 ` Cyril Chemparathy
2012-09-24 23:03 ` Nicolas Pitre
2012-09-24 23:08 ` Russell King - ARM Linux
2012-09-24 22:55 ` Nicolas Pitre
2012-09-25 12:55 ` Dave Martin
2012-09-25 13:53 ` Catalin Marinas
2012-09-24 21:53 ` Cyril Chemparathy
2012-09-24 22:06 ` Russell King - ARM Linux
2012-09-24 16:31 ` Dave Martin
2012-09-24 16:31 ` Dave Martin
2012-09-24 16:51 ` Nicolas Pitre
2012-09-24 16:51 ` Nicolas Pitre
2012-09-21 15:56 ` [PATCH v3 RESEND 06/17] ARM: LPAE: use signed arithmetic for mask definitions Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 13:09 ` Catalin Marinas
2012-09-24 13:54 ` Russell King - ARM Linux
2012-09-24 13:54 ` Russell King - ARM Linux
2012-09-21 15:56 ` [PATCH v3 RESEND 07/17] ARM: LPAE: use phys_addr_t in alloc_init_pud() Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 13:10 ` Catalin Marinas
2012-09-21 15:56 ` [PATCH v3 RESEND 08/17] ARM: LPAE: use phys_addr_t in free_memmap() Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 13:29 ` Catalin Marinas
2012-09-24 13:41 ` Russell King - ARM Linux
2012-09-24 15:09 ` Cyril Chemparathy
2012-09-24 15:22 ` Russell King - ARM Linux
2012-09-24 16:41 ` Cyril Chemparathy
2012-09-24 16:51 ` Catalin Marinas
2012-09-24 17:06 ` Cyril Chemparathy
2012-09-24 17:14 ` Russell King - ARM Linux
2012-09-25 13:08 ` Catalin Marinas
2012-09-25 13:30 ` Russell King - ARM Linux
2012-09-24 16:55 ` Russell King - ARM Linux
2012-09-24 17:03 ` Catalin Marinas
2012-09-21 15:56 ` [PATCH v3 RESEND 09/17] ARM: LPAE: use phys_addr_t for initrd location and size Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 13:30 ` Catalin Marinas
2012-09-24 13:38 ` Russell King - ARM Linux
2012-09-24 13:38 ` Russell King - ARM Linux
2012-09-24 14:00 ` Cyril Chemparathy
2012-09-24 14:00 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 10/17] ARM: LPAE: use phys_addr_t in switch_mm() Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 14:05 ` Catalin Marinas [this message]
2012-09-24 14:32 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 11/17] ARM: LPAE: use 64-bit accessors for TTBR registers Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 14:10 ` Catalin Marinas
2012-09-21 15:56 ` [PATCH v3 RESEND 12/17] ARM: LPAE: define ARCH_LOW_ADDRESS_LIMIT for bootmem Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 14:16 ` Catalin Marinas
2012-09-21 15:56 ` [PATCH v3 RESEND 13/17] ARM: LPAE: factor out T1SZ and TTBR1 computations Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 14:45 ` Catalin Marinas
2012-09-24 14:58 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 14/17] ARM: LPAE: accomodate >32-bit addresses for page table base Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 15:17 ` Catalin Marinas
2012-09-21 15:56 ` [PATCH v3 RESEND 15/17] ARM: mm: use physical addresses in highmem sanity checks Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-24 15:18 ` Catalin Marinas
2012-09-21 15:56 ` [PATCH v3 RESEND 16/17] ARM: mm: cleanup checks for membank overlap with vmalloc area Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
2012-09-21 15:56 ` [PATCH v3 RESEND 17/17] ARM: mm: clean up membank size limit checks Cyril Chemparathy
2012-09-21 15:56 ` Cyril Chemparathy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120924140515.GF23298@arm.com \
--to=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.