Re: [PATCH V2] Xen: ARM: Zero reserved fields of xatp before making hypervisor call

From: Julien Grall
Date: Mon Jan 16 2017 - 10:03:26 EST


Hi Stefano,

On 03/01/17 18:03, Stefano Stabellini wrote:
On Mon, 2 Jan 2017, Juergen Gross wrote:
On 28/12/16 01:47, Jiandi An wrote:
Ensure all reserved fields of xatp are zero before making
hypervisor call to XEN in xen_map_device_mmio().
xenmem_add_to_physmap_one() in XEN fails the mapping request if
extra.res reserved field in xatp is not zero for XENMAPSPACE_dev_mmio
request.

Signed-off-by: Jiandi An <anjiandi@xxxxxxxxxxxxxx>
---
Changed zeroing xatp to a static initialization
of .domid and .space for xatp.

drivers/xen/arm-device.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/arm-device.c b/drivers/xen/arm-device.c
index 778acf8..85dd20e 100644
--- a/drivers/xen/arm-device.c
+++ b/drivers/xen/arm-device.c
@@ -58,9 +58,13 @@ static int xen_map_device_mmio(const struct resource *resources,
xen_pfn_t *gpfns;
xen_ulong_t *idxs;
int *errs;
- struct xen_add_to_physmap_range xatp;

for (i = 0; i < count; i++) {
+ struct xen_add_to_physmap_range xatp = {
+ .domid = DOMID_SELF,
+ .space = XENMAPSPACE_dev_mmio
+ };
+

I still don't see the need to re-initialize the input parts of xatp
on each loop iteration unless you can show the need for it (e.g. a
buggy hypervisor version not conforming to the interface specification).

OTOH I don't feel really strong about it and let Stefano being the
maintainer for the ARM parts decide.

I don't feel strongly about this either - I think this patch is good
enough. I'll apply to xentip.

I think this patch should be backported to stable trees because the issue could appear depending on the compiler.

Cheers,

--
Julien Grall