[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen master] libs/guest: don't use unsigned long as type for PFNs



commit fd67ca4e58c0a90aca21ea808b8297c65f7bb43b
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Mon Oct 6 07:59:39 2025 +0200
Commit:     Julien Grall <jgrall@xxxxxxxxxx>
CommitDate: Mon Oct 6 12:22:21 2025 +0100

    libs/guest: don't use unsigned long as type for PFNs
    
    Declarations of xc_dom_console_init() and
    xc_dom_console_set_disconnected() in libxenguest.h don't match their
    implementation in the library.
    
    Under arm32, xen_pfn_t is a uint64_t and wider than unsigned long.
    
    Use xen_pfn_t for GFNs in the library to fix that. At the same time
    change the parameter name of the implementation to console_gfn,
    matching the interface declaration in the header and reality (it is
    a GFN, not a PFN).
    
    Fixes: b6fc307b0b00 ("libs/guest: Set console as disconnected on resume")
    Fixes: 971b7d5ecbcd ("libs/guest: Set console page to disconnected")
    Reported-by: Luca Fancellu <luca.fancellu@xxxxxxx>
    Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Luca Fancellu <luca.fancellu@xxxxxxx>
    Tested-by: Luca Fancellu <luca.fancellu@xxxxxxx>
    Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
    Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
---
 tools/libs/guest/xg_dom_boot.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/libs/guest/xg_dom_boot.c b/tools/libs/guest/xg_dom_boot.c
index f51b6a78c8..420222cf37 100644
--- a/tools/libs/guest/xg_dom_boot.c
+++ b/tools/libs/guest/xg_dom_boot.c
@@ -430,12 +430,12 @@ int xc_dom_gnttab_init(struct xc_dom_image *dom)
 
 static int dom_console_init(xc_interface *xch,
                             uint32_t domid,
-                            unsigned long dst_pfn,
+                            xen_pfn_t console_gfn,
                             bool clear)
 {
     const size_t size = PAGE_SIZE;
     struct xencons_interface *xencons = xc_map_foreign_range(
-        xch, domid, size, PROT_WRITE, dst_pfn);
+        xch, domid, size, PROT_WRITE, console_gfn);
 
     if ( xencons == NULL )
         return -1;
@@ -445,22 +445,22 @@ static int dom_console_init(xc_interface *xch,
     xencons->connection = XENCONSOLE_DISCONNECTED;
 
     munmap(xencons, size);
-    xc_domain_cacheflush(xch, domid, dst_pfn, 1);
+    xc_domain_cacheflush(xch, domid, console_gfn, 1);
     return 0;
 }
 
 int xc_dom_console_init(xc_interface *xch,
                         uint32_t domid,
-                        unsigned long dst_pfn)
+                        xen_pfn_t console_gfn)
 {
-    return dom_console_init(xch, domid, dst_pfn, true);
+    return dom_console_init(xch, domid, console_gfn, true);
 }
 
 int xc_dom_console_set_disconnected(xc_interface *xch,
                                     uint32_t domid,
-                                    unsigned long dst_pfn)
+                                    xen_pfn_t console_gfn)
 {
-    return dom_console_init(xch, domid, dst_pfn, false);
+    return dom_console_init(xch, domid, console_gfn, false);
 }
 
 /*
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.