* [PATCH v3 0/2] xen: arm: Give PTE bits explict values
@ 2015-09-10 18:56 Chris Brand
2015-09-10 18:56 ` [PATCH v3 1/2] xen: arm re-order assignments in mfn_to_xen_entry() Chris Brand
2015-09-10 18:56 ` [PATCH v3 2/2] xen: arm: Be explicit about bit values " Chris Brand
0 siblings, 2 replies; 4+ messages in thread
From: Chris Brand @ 2015-09-10 18:56 UTC (permalink / raw)
To: xen-devel; +Cc: Julien Grall, Stefano Stabellini, Ian Campbell
This is more-or-less what Julien requested. He noted that pt.config
was never set to zero. When I looked further, I found other bits that
were also never given a value. Looking at the callsites, they almost
all seem to assume a value of zero, so that's what I went with.
Patch 1 re-orders the assignments to match the declaration, making it
clearer which ones are missing. Patch 2 then adds the missing bits.
Chris
Chris Brand (2):
xen: arm re-order assignments in mfn_to_xen_entry()
xen: arm: Be explicit about bit values in mfn_to_xen_entry()
xen/include/asm-arm/page.h | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] xen: arm re-order assignments in mfn_to_xen_entry()
2015-09-10 18:56 [PATCH v3 0/2] xen: arm: Give PTE bits explict values Chris Brand
@ 2015-09-10 18:56 ` Chris Brand
2015-09-10 18:56 ` [PATCH v3 2/2] xen: arm: Be explicit about bit values " Chris Brand
1 sibling, 0 replies; 4+ messages in thread
From: Chris Brand @ 2015-09-10 18:56 UTC (permalink / raw)
To: xen-devel; +Cc: Julien Grall, Stefano Stabellini, Ian Campbell
Shuffle lines around so that the assignments in mfn_to_xen_entry()
occur in the same order as the bits are declared in lpae_pt_t.
This makes it easier to see which ones are never given a value.
No change in behaviour.
Also fix a minor comment typo.
Signed-off-by: Chris Brand <chris.brand@broadcom.com>
Reviewed-by: Julien Grall <julien.grall@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
---
xen/include/asm-arm/page.h | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
index 5ecfd0705e07..01628f3e96cb 100644
--- a/xen/include/asm-arm/page.h
+++ b/xen/include/asm-arm/page.h
@@ -197,18 +197,18 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn, unsigned attr)
paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
lpae_t e = (lpae_t) {
.pt = {
- .xn = 1, /* No need to execute outside .text */
- .ng = 1, /* Makes TLB flushes easier */
- .af = 1, /* No need for access tracking */
+ .valid = 1, /* Mappings are present */
+ .table = 0, /* Set to 1 for links and 4k maps */
+ .ai = attr,
.ns = 1, /* Hyp mode is in the non-secure world */
.user = 1, /* See below */
- .ai = attr,
- .table = 0, /* Set to 1 for links and 4k maps */
- .valid = 1, /* Mappings are present */
+ .af = 1, /* No need for access tracking */
+ .ng = 1, /* Makes TLB flushes easier */
+ .xn = 1, /* No need to execute outside .text */
}};;
/* Setting the User bit is strange, but the ATS1H[RW] instructions
* don't seem to work otherwise, and since we never run on Xen
- * pagetables un User mode it's OK. If this changes, remember
+ * pagetables in User mode it's OK. If this changes, remember
* to update the hard-coded values in head.S too */
switch ( attr )
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] xen: arm: Be explicit about bit values in mfn_to_xen_entry()
2015-09-10 18:56 [PATCH v3 0/2] xen: arm: Give PTE bits explict values Chris Brand
2015-09-10 18:56 ` [PATCH v3 1/2] xen: arm re-order assignments in mfn_to_xen_entry() Chris Brand
@ 2015-09-10 18:56 ` Chris Brand
2015-09-11 14:10 ` Ian Campbell
1 sibling, 1 reply; 4+ messages in thread
From: Chris Brand @ 2015-09-10 18:56 UTC (permalink / raw)
To: xen-devel; +Cc: Julien Grall, Stefano Stabellini, Ian Campbell
Ensure that every relevant bit is given an explicit value.
This has no effect on the generated code, but makes it
a little easier to follow.
Reported-by: Julien Grall <julien.grall@citrix.com>
Signed-off-by: Chris Brand <chris.brand@broadcom.com>
---
v3 trims down the list of bits given explicit values
v2 adds comments on pxn and avail
xen/include/asm-arm/page.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
index 01628f3e96cb..a94e978a9995 100644
--- a/xen/include/asm-arm/page.h
+++ b/xen/include/asm-arm/page.h
@@ -202,9 +202,12 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn, unsigned attr)
.ai = attr,
.ns = 1, /* Hyp mode is in the non-secure world */
.user = 1, /* See below */
+ .ro = 0, /* Assume read-write */
.af = 1, /* No need for access tracking */
.ng = 1, /* Makes TLB flushes easier */
+ .contig = 0, /* Assume non-contiguous */
.xn = 1, /* No need to execute outside .text */
+ .avail = 0, /* Reference count for domheap mapping */
}};;
/* Setting the User bit is strange, but the ATS1H[RW] instructions
* don't seem to work otherwise, and since we never run on Xen
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/2] xen: arm: Be explicit about bit values in mfn_to_xen_entry()
2015-09-10 18:56 ` [PATCH v3 2/2] xen: arm: Be explicit about bit values " Chris Brand
@ 2015-09-11 14:10 ` Ian Campbell
0 siblings, 0 replies; 4+ messages in thread
From: Ian Campbell @ 2015-09-11 14:10 UTC (permalink / raw)
To: Chris Brand, xen-devel; +Cc: Julien Grall, Stefano Stabellini
On Thu, 2015-09-10 at 11:56 -0700, Chris Brand wrote:
> Ensure that every relevant bit is given an explicit value.
> This has no effect on the generated code, but makes it
> a little easier to follow.
>
> Reported-by: Julien Grall <julien.grall@citrix.com>
> Signed-off-by: Chris Brand <chris.brand@broadcom.com>
Acked + applied for 4.7 along with the first one.
I don't think there is any need for either for 4.6, since it's just a code
clarity thing.
> ---
> v3 trims down the list of bits given explicit values
> v2 adds comments on pxn and avail
>
> xen/include/asm-arm/page.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
> index 01628f3e96cb..a94e978a9995 100644
> --- a/xen/include/asm-arm/page.h
> +++ b/xen/include/asm-arm/page.h
> @@ -202,9 +202,12 @@ static inline lpae_t mfn_to_xen_entry(unsigned long
> mfn, unsigned attr)
> .ai = attr,
> .ns = 1, /* Hyp mode is in the non-secure world
> */
> .user = 1, /* See below */
> + .ro = 0, /* Assume read-write */
> .af = 1, /* No need for access tracking */
> .ng = 1, /* Makes TLB flushes easier */
> + .contig = 0, /* Assume non-contiguous */
> .xn = 1, /* No need to execute outside .text */
> + .avail = 0, /* Reference count for domheap mapping
> */
> }};;
> /* Setting the User bit is strange, but the ATS1H[RW] instructions
> * don't seem to work otherwise, and since we never run on Xen
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-09-11 14:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-10 18:56 [PATCH v3 0/2] xen: arm: Give PTE bits explict values Chris Brand
2015-09-10 18:56 ` [PATCH v3 1/2] xen: arm re-order assignments in mfn_to_xen_entry() Chris Brand
2015-09-10 18:56 ` [PATCH v3 2/2] xen: arm: Be explicit about bit values " Chris Brand
2015-09-11 14:10 ` Ian Campbell
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).