mirror of https://github.com/acidanthera/audk.git
Ovmf/Xen: fix pointer to int cast in XenBusDxe
On ARM, xen_pfn_t is 64 bits but the size of a pointer is only 32 bits, so casting between them needs to go via (UINTN). Also move the xen_pfn_t cast outside the shift so that we can avoid shifting 64-bit quantities on 32-bit architectures, which may require runtime library support. Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16968 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
0ac10d1d8e
commit
d6970b9b41
|
@ -160,7 +160,7 @@ XenGrantTableInit (
|
|||
Parameters.domid = DOMID_SELF;
|
||||
Parameters.idx = Index;
|
||||
Parameters.space = XENMAPSPACE_grant_table;
|
||||
Parameters.gpfn = (((xen_pfn_t) GrantTable) >> EFI_PAGE_SHIFT) + Index;
|
||||
Parameters.gpfn = (xen_pfn_t) ((UINTN) GrantTable >> EFI_PAGE_SHIFT) + Index;
|
||||
ReturnCode = XenHypercallMemoryOp (Dev, XENMEM_add_to_physmap, &Parameters);
|
||||
if (ReturnCode != 0) {
|
||||
DEBUG ((EFI_D_ERROR, "Xen GrantTable, add_to_physmap hypercall error: %d\n", ReturnCode));
|
||||
|
@ -182,7 +182,7 @@ XenGrantTableDeinit (
|
|||
|
||||
for (Index = NR_GRANT_FRAMES - 1; Index >= 0; Index--) {
|
||||
Parameters.domid = DOMID_SELF;
|
||||
Parameters.gpfn = (((xen_pfn_t) GrantTable) >> EFI_PAGE_SHIFT) + Index;
|
||||
Parameters.gpfn = (xen_pfn_t) ((UINTN) GrantTable >> EFI_PAGE_SHIFT) + Index;
|
||||
DEBUG ((EFI_D_INFO, "Xen GrantTable, removing %X\n", Parameters.gpfn));
|
||||
ReturnCode = XenHypercallMemoryOp (Dev, XENMEM_remove_from_physmap, &Parameters);
|
||||
if (ReturnCode != 0) {
|
||||
|
|
Loading…
Reference in New Issue