]> xenbits.xensource.com Git - xen.git/commitdiff
x86/alternatives: adjust alternative_vcall0()
authorJan Beulich <jbeulich@suse.com>
Fri, 3 Dec 2021 10:36:46 +0000 (11:36 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 3 Dec 2021 10:36:46 +0000 (11:36 +0100)
I'm puzzled about two inconsistencies with other alternative_vcall<N>()
here: There's a check missing that the supplied function pointer is
actually pointing to a function taking no args. And there's a pointless
pair of parentheses. Correct both.

Fixes: 67d01cdb5518 ("x86: infrastructure to allow converting certain indirect calls to direct ones")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Wei Chen <Wei.Chen@arm.com>
xen/include/asm-x86/alternative.h

index 8bc59b02afd76c4b7566b29d59664a8011741041..a7a82c2c0362f183d0ca6b95784bb99e5babbd15 100644 (file)
@@ -218,7 +218,8 @@ extern void alternative_branches(void);
 
 #define alternative_vcall0(func) ({             \
     ALT_CALL_NO_ARG1;                           \
-    ((void)alternative_callN(0, int, func));    \
+    (void)sizeof(func());                       \
+    (void)alternative_callN(0, int, func);      \
 })
 
 #define alternative_call0(func) ({              \