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

From: Juergen Gross
Date: Mon Dec 19 2016 - 07:15:07 EST


On 19/12/16 03:56, 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>
> ---
> drivers/xen/arm-device.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/xen/arm-device.c b/drivers/xen/arm-device.c
> index 778acf8..208273b 100644
> --- a/drivers/xen/arm-device.c
> +++ b/drivers/xen/arm-device.c
> @@ -87,6 +87,9 @@ static int xen_map_device_mmio(const struct resource *resources,
> idxs[j] = XEN_PFN_DOWN(r->start) + j;
> }
>
> + /* Ensure reserved fields are set to zero */
> + memset(&xatp, 0, sizeof(xatp));
> +
> xatp.domid = DOMID_SELF;
> xatp.size = nr;
> xatp.space = XENMAPSPACE_dev_mmio;

Instead of setting xatp to 0 in each iteration I'd prefer a static
initialization of .domid and .space:

struct xen_add_to_physmap_range xatp = {
.domid = DOMID_SELF,
.space = XENMAPSPACE_dev_mmio
};


Juergen