On 03.02.2022 11:55, Juergen Gross wrote: > On 03.02.22 10:10, Jan Beulich wrote: >> On 01.02.2022 10:02, Juergen Gross wrote: >>> The grant table operation GNTTABOP_transfer is meant to be used in >>> PV device backends, and it hasn't been used in Linux since the old >>> Xen-o-Linux days. >> >> Kind of unusual spelling of XenoLinux ;-) >> >>> --- a/xen/common/grant_table.c >>> +++ b/xen/common/grant_table.c >>> @@ -181,6 +181,7 @@ static int parse_gnttab_max_maptrack_frames(const char >>> *arg) >>> >>> unsigned int __read_mostly opt_gnttab_max_version = GNTTAB_MAX_VERSION; >>> static bool __read_mostly opt_transitive_grants = true; >>> +static bool __read_mostly opt_grant_transfer = true; >> >> If this was conditional upon PV (with a #define to false in the >> opposite case), it could be __ro_after_init right away, while at >> the same time allowing the compiler to eliminate gnttab_transfer(). > > Nice idea. The other option would be to put all (or most) of > gnttab_transfer() in a "#ifdef CONFIG_PV" section, allowing to > remove the "#ifdef CONFIG_X86" parts in it, too.
Yes, sure. The downside being that then this code won't be compile- tested anymore in !PV builds. Yet keeping code visible to compilers is what we aim for elsewhere by preferring if(IS_ENABLED(...)) over #ifdef where possible. Jan
