xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: Julien Grall <julien.grall@arm.com>, xen-devel@lists.xen.org
Cc: sstabellini@kernel.org
Subject: Re: [PATCH 25/27] xen/arm: mm: Embed permission in the flags
Date: Wed, 23 Aug 2017 15:08:53 +0100	[thread overview]
Message-ID: <0b5de682-d51c-1ad7-063e-2321e1e88545@arm.com> (raw)
In-Reply-To: <20170814142418.13267-26-julien.grall@arm.com>

Hi,

On 14/08/17 15:24, Julien Grall wrote:
> Currently, it is not possible to specify the permission of a new
> mapping. It would be necessary to use the function modify_xen_mappings
> with a different set of flags.
> 
> Add introduce a couple of new flags for the permissions (Non-eXecutable,
> Read-Only) and also provides define that combine the memory attribute
> and permission for common combination.

If I haven't been lost in the definitions, this now adds "not
executable" to the existing definitions, which seems to make sense, but
is a change that might trigger regressions (especially for
PAGE_HYPERVISOR). So I wonder if that should be mentioned in the commit
message then?

The actual patch looks OK though, so:

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Cheers,
Andre.

> 
> A follow-up patch will change modify_xen_mappings to use the new flags.
> 
> Signed-off-by: Julien Grall <julien.grall@arm.com>
> ---
>  xen/include/asm-arm/page.h | 22 +++++++++++++++++++---
>  1 file changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
> index 1bf8e9d012..047220f86b 100644
> --- a/xen/include/asm-arm/page.h
> +++ b/xen/include/asm-arm/page.h
> @@ -67,12 +67,28 @@
>   * Layout of the flags used for updating the hypervisor page tables
>   *
>   * [0:2] Memory Attribute Index
> + * [3:4] Permission flags
>   */
>  #define PAGE_AI_MASK(x) ((x) & 0x7U)
>  
> -#define PAGE_HYPERVISOR         (MT_NORMAL)
> -#define PAGE_HYPERVISOR_NOCACHE (MT_DEVICE_nGnRE)
> -#define PAGE_HYPERVISOR_WC      (MT_NORMAL_NC)
> +#define _PAGE_XN_BIT    3
> +#define _PAGE_RO_BIT    4
> +#define _PAGE_XN    (1U << _PAGE_XN_BIT)
> +#define _PAGE_RO    (1U << _PAGE_RO_BIT)
> +#define PAGE_XN_MASK(x) (((x) >> _PAGE_XN_BIT) & 0x1U)
> +#define PAGE_RO_MASK(x) (((x) >> _PAGE_RO_BIT) & 0x1U)
> +
> +/* Device memory will always be mapped read-write non-executable. */
> +#define _PAGE_DEVICE    _PAGE_XN
> +#define _PAGE_NORMAL    MT_NORMAL
> +
> +#define PAGE_HYPERVISOR_RO      (_PAGE_NORMAL|_PAGE_RO|_PAGE_XN)
> +#define PAGE_HYPERVISOR_RX      (_PAGE_NORMAL|_PAGE_RO)
> +#define PAGE_HYPERVISOR_RW      (_PAGE_NORMAL|_PAGE_XN)
> +
> +#define PAGE_HYPERVISOR         PAGE_HYPERVISOR_RW
> +#define PAGE_HYPERVISOR_NOCACHE (_PAGE_DEVICE|MT_DEVICE_nGnRE)
> +#define PAGE_HYPERVISOR_WC      (_PAGE_DEVICE|MT_NORMAL_NC)
>  
>  /*
>   * Defines for changing the hypervisor PTE .ro and .nx bits. This is only to be
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2017-08-23 14:08 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-14 14:23 [PATCH 00/27] xen/arm: Memory subsystem clean-up Julien Grall
2017-08-14 14:23 ` [PATCH 01/27] xen/x86: numa: Don't check alloc_boot_pages return Julien Grall
2017-08-22 11:22   ` Andre Przywara
2017-08-14 14:23 ` [PATCH 02/27] xen/x86: srat: " Julien Grall
2017-08-22 11:23   ` Andre Przywara
2017-08-14 14:23 ` [PATCH 03/27] xen/x86: mm: " Julien Grall
2017-08-15 15:55   ` Jan Beulich
2017-08-22 11:28   ` Andre Przywara
2017-08-22 17:28     ` Julien Grall
2017-08-14 14:23 ` [PATCH 04/27] xen/mm: Move {G, M]FN <-> {G, M}ADDR helpers to common code Julien Grall
2017-08-22  8:23   ` Jan Beulich
2017-08-22 17:37     ` Julien Grall
2017-08-14 14:23 ` [PATCH 05/27] xen/mm: Use typesafe MFN for alloc_boot_pages return Julien Grall
2017-08-22  8:28   ` Jan Beulich
2017-08-14 14:23 ` [PATCH 06/27] xen/mm: Use __virt_to_mfn in map_domain_page instead of virt_to_mfn Julien Grall
2017-08-22  8:29   ` Jan Beulich
2017-08-14 14:23 ` [PATCH 07/27] xen/arm: mm: Redefine mfn_to_virt to use typesafe Julien Grall
2017-08-14 14:23 ` [PATCH 08/27] xen/arm: hsr_iabt: Document RES0 field Julien Grall
2017-08-22 14:21   ` Andre Przywara
2017-08-22 14:23     ` Julien Grall
2017-08-14 14:24 ` [PATCH 09/27] xen/arm: traps: Don't define FAR_EL2 for ARM32 Julien Grall
2017-08-22 14:12   ` Andre Przywara
2017-08-23 19:05     ` Julien Grall
2017-08-14 14:24 ` [PATCH 10/27] xen/arm: arm32: Don't define FAR_EL1 Julien Grall
2017-08-22 14:37   ` Andre Przywara
2017-08-23 19:06     ` Julien Grall
2017-08-14 14:24 ` [PATCH 11/27] xen/arm: Add FnV field in hsr_*abt Julien Grall
2017-08-22 16:07   ` Andre Przywara
2017-08-23 19:17     ` Julien Grall
2017-08-14 14:24 ` [PATCH 12/27] xen/arm: Introduce hsr_xabt to gather common bits between hsr_dabt and Julien Grall
2017-08-22 16:19   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 13/27] xen/arm: traps: Introduce a helper to read the hypersivor fault register Julien Grall
2017-08-22 17:19   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 14/27] xen/arm: traps: Improve logging for data/prefetch abort fault Julien Grall
2017-08-22 17:20   ` Andre Przywara
2017-08-23 19:18     ` Julien Grall
2017-08-14 14:24 ` [PATCH 15/27] xen/arm: Replace ioremap_attr(PAGE_HYPERVISOR_NOCACHE) call by ioremap_nocache Julien Grall
2017-08-22 17:20   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 16/27] xen/arm: page: Remove unused attributes DEV_NONSHARED and DEV_CACHED Julien Grall
2017-08-23 11:41   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 17/27] xen/arm: page: Use directly BUFFERABLE and drop DEV_WC Julien Grall
2017-08-22 17:21   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 18/27] xen/arm: page: Prefix memory types with MT_ Julien Grall
2017-08-23 11:41   ` Andre Przywara
2017-08-23 18:51     ` Julien Grall
2017-08-14 14:24 ` [PATCH 19/27] xen/arm: page: Clean-up the definition of MAIRVAL Julien Grall
2017-08-23 11:42   ` Andre Przywara
2017-08-23 18:53     ` Julien Grall
2017-08-14 14:24 ` [PATCH 20/27] xen/arm: page: Use ARMv8 naming to improve readability Julien Grall
2017-08-23 11:42   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 21/27] xen/arm: mm: Rename and clarify AP[1] in the stage-1 page table Julien Grall
2017-08-23 14:07   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 22/27] xen/arm: Switch to SYS_STATE_boot just after end_boot_allocator() Julien Grall
2017-08-22 17:21   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 23/27] xen/arm: mm: Rename 'ai' into 'flags' in create_xen_entries Julien Grall
2017-08-23 14:07   ` Andre Przywara
2017-08-14 14:24 ` [PATCH 24/27] xen/arm: page: Describe the layout of flags used to update page tables Julien Grall
2017-08-23 14:08   ` Andre Przywara
2017-08-23 14:31     ` Julien Grall
2017-08-14 14:24 ` [PATCH 25/27] xen/arm: mm: Embed permission in the flags Julien Grall
2017-08-23 14:08   ` Andre Przywara [this message]
2017-08-23 14:26     ` Julien Grall
2017-08-23 14:37       ` Andre Przywara
2017-08-23 19:03         ` Julien Grall
2017-08-14 14:24 ` [PATCH 26/27] xen/arm: mm: Handling permission flags when adding a new mapping Julien Grall
2017-08-23 14:09   ` Andre Przywara
2017-08-23 14:36     ` Julien Grall
2017-08-14 14:24 ` [PATCH 27/27] xen/arm: mm: Use memory flags for modify_xen_mappings rather than custom one Julien Grall
2017-08-23 14:10   ` Andre Przywara
2017-08-23 14:30     ` Julien Grall
2017-08-23 14:46 ` [PATCH 00/27] xen/arm: Memory subsystem clean-up Andre Przywara

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=0b5de682-d51c-1ad7-063e-2321e1e88545@arm.com \
    --to=andre.przywara@arm.com \
    --cc=julien.grall@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xen.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;
as well as URLs for NNTP newsgroup(s).