Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: frank.hofmann@tomtom.com (Frank Hofmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 05/10] ARM: idmap: add header file for identity mapping functions
Date: Fri, 10 Jun 2011 10:13:18 +0100 (BST)	[thread overview]
Message-ID: <alpine.DEB.2.00.1106101010120.11513@localhost6.localdomain6> (raw)
In-Reply-To: <1307635142-11312-6-git-send-email-will.deacon@arm.com>

Hi Will,

I'm wondering why identity_mapping_del() is restricted to SMP.

Yes have seen that the only current _user_ is SMP initialization, but does 
that mean it has to be restricted to that ?

I'd want to use it in hibernation resume code, to "cleanse" swapper_pg_dir 
of the identity mappings _after_ resume. That task doesn't depend on SMP 
or not.

Thanks,
FrankH.


On Thu, 9 Jun 2011, Will Deacon wrote:

> The identity mappings functions are useful outside of SMP booting, so
> expose them through their own header file.
>
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
> arch/arm/include/asm/idmap.h   |   16 ++++++++++++++++
> arch/arm/include/asm/pgtable.h |    3 ---
> arch/arm/kernel/process.c      |    3 +--
> arch/arm/kernel/smp.c          |    1 +
> arch/arm/mm/idmap.c            |    1 +
> 5 files changed, 19 insertions(+), 5 deletions(-)
> create mode 100644 arch/arm/include/asm/idmap.h
>
> diff --git a/arch/arm/include/asm/idmap.h b/arch/arm/include/asm/idmap.h
> new file mode 100644
> index 0000000..ea9517e
> --- /dev/null
> +++ b/arch/arm/include/asm/idmap.h
> @@ -0,0 +1,16 @@
> +#ifndef _ARM_IDMAP_H
> +#define _ARM_IDMAP_H
> +
> +#include <asm/page.h>
> +
> +void identity_mapping_add(pgd_t *pgd, unsigned long addr, unsigned long end);
> +
> +#ifdef CONFIG_SMP
> +void identity_mapping_del(pgd_t *pgd, unsigned long addr, unsigned long end);
> +#else
> +void identity_mapping_del(pgd_t *pgd, unsigned long addr, unsigned long end) {};
> +#endif
> +
> +void setup_mm_for_reboot(char mode);
> +
> +#endif	/* _ARM_IDMAP_H */
> diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
> index 5750704..9d559a8 100644
> --- a/arch/arm/include/asm/pgtable.h
> +++ b/arch/arm/include/asm/pgtable.h
> @@ -474,9 +474,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
>
> #define pgtable_cache_init() do { } while (0)
>
> -void identity_mapping_add(pgd_t *, unsigned long, unsigned long);
> -void identity_mapping_del(pgd_t *, unsigned long, unsigned long);
> -
> #endif /* !__ASSEMBLY__ */
>
> #endif /* CONFIG_MMU */
> diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
> index 5e1e541..8bd9d94 100644
> --- a/arch/arm/kernel/process.c
> +++ b/arch/arm/kernel/process.c
> @@ -32,6 +32,7 @@
> #include <linux/hw_breakpoint.h>
>
> #include <asm/cacheflush.h>
> +#include <asm/idmap.h>
> #include <asm/leds.h>
> #include <asm/processor.h>
> #include <asm/system.h>
> @@ -56,8 +57,6 @@ static const char *isa_modes[] = {
>   "ARM" , "Thumb" , "Jazelle", "ThumbEE"
> };
>
> -extern void setup_mm_for_reboot(char mode);
> -
> static volatile int hlt_counter;
>
> #include <mach/system.h>
> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> index 344e52b..dfc76aa 100644
> --- a/arch/arm/kernel/smp.c
> +++ b/arch/arm/kernel/smp.c
> @@ -39,6 +39,7 @@
> #include <asm/tlbflush.h>
> #include <asm/ptrace.h>
> #include <asm/localtimer.h>
> +#include <asm/idmap.h>
>
> /*
>  * as from 2.5, kernels no longer have an init_tasks structure
> diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c
> index 2be9139..4ae0f09 100644
> --- a/arch/arm/mm/idmap.c
> +++ b/arch/arm/mm/idmap.c
> @@ -1,6 +1,7 @@
> #include <linux/kernel.h>
>
> #include <asm/cputype.h>
> +#include <asm/idmap.h>
> #include <asm/pgalloc.h>
> #include <asm/pgtable.h>
>
> -- 
> 1.7.0.4
>
>

  reply	other threads:[~2011-06-10  9:13 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-09 15:58 [PATCH v2 00/10] MMU disabling code and kexec fixes Will Deacon
2011-06-09 15:58 ` [PATCH v2 01/10] ARM: l2x0: fix disabling function to avoid livelock Will Deacon
2011-06-09 15:58 ` [PATCH v2 02/10] ARM: l2x0: fix invalidate-all " Will Deacon
2011-06-09 15:58 ` [PATCH v2 03/10] ARM: proc: add definition of cpu_reset for ARMv6 and ARMv7 cores Will Deacon
2011-06-09 15:58 ` [PATCH v2 04/10] ARM: lib: add switch_stack function for safely changing stack Will Deacon
2011-06-09 16:11   ` Dave Martin
2011-06-09 16:20     ` Dave Martin
2011-06-09 15:58 ` [PATCH v2 05/10] ARM: idmap: add header file for identity mapping functions Will Deacon
2011-06-10  9:13   ` Frank Hofmann [this message]
2011-06-09 15:58 ` [PATCH v2 06/10] ARM: reset: allow kernelspace mappings to be flat mapped during reset Will Deacon
2011-06-09 15:58 ` [PATCH v2 07/10] ARM: multi-cpu: remove arguments from CPU proc macros Will Deacon
2011-06-09 15:59 ` [PATCH v2 08/10] ARM: reset: add reset functionality for jumping to a physical address Will Deacon
2011-06-09 15:59 ` [PATCH v2 09/10] ARM: kexec: use arm_machine_reset for branching to the reboot buffer Will Deacon
2011-06-09 15:59 ` [PATCH v2 10/10] ARM: stop: execute platform callback from cpu_stop code Will Deacon

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=alpine.DEB.2.00.1106101010120.11513@localhost6.localdomain6 \
    --to=frank.hofmann@tomtom.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox