The odd DEFINE_XEN_GUEST_HANDLE(), inconsistent with all other similar constructs, should have caught my attention. Turns out it was needed for the build to succeed merely because the corresponding #ifndef had a typo. That typo in turn broke compat mode guests, by having query-size requests of theirs wire into the domain_crash() at the bottom of the switch().
Fixes: 8c3bb4d8ce3f ("xen/gnttab: Perform compat/native gnttab_query_size check") Signed-off-by: Jan Beulich <jbeul...@suse.com> --- Looks like set-version is similarly missing in the set of structures checked, but I'm pretty sure that we will now want to defer taking care of that until after 4.20 was branched. --- a/xen/common/compat/grant_table.c +++ b/xen/common/compat/grant_table.c @@ -33,7 +33,6 @@ CHECK_gnttab_unmap_and_replace; #define xen_gnttab_query_size gnttab_query_size CHECK_gnttab_query_size; #undef xen_gnttab_query_size -DEFINE_XEN_GUEST_HANDLE(gnttab_query_size_compat_t); DEFINE_XEN_GUEST_HANDLE(gnttab_setup_table_compat_t); DEFINE_XEN_GUEST_HANDLE(gnttab_transfer_compat_t); @@ -111,7 +110,7 @@ int compat_grant_table_op( CASE(copy); #endif -#ifndef CHECK_query_size +#ifndef CHECK_gnttab_query_size CASE(query_size); #endif