Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b47a6bd authored by Jiandi An's avatar Jiandi An Committed by Stefano Stabellini
Browse files

Xen: ARM: Zero reserved fields of xatp before making hypervisor call



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: default avatarJiandi An <anjiandi@codeaurora.org>
Reviewed-by: default avatarStefano Stabellini <sstabellini@kernel.org>
parent f9751a60
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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
		};

		r = &resources[i];
		nr = DIV_ROUND_UP(resource_size(r), XEN_PAGE_SIZE);
		if ((resource_type(r) != IORESOURCE_MEM) || (nr == 0))
@@ -87,9 +91,7 @@ static int xen_map_device_mmio(const struct resource *resources,
			idxs[j] = XEN_PFN_DOWN(r->start) + j;
		}

		xatp.domid = DOMID_SELF;
		xatp.size = nr;
		xatp.space = XENMAPSPACE_dev_mmio;

		set_xen_guest_handle(xatp.gpfns, gpfns);
		set_xen_guest_handle(xatp.idxs, idxs);