]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
allow only sizeof(bool) variables for boolean_param()
authorJuergen Gross <jgross@suse.com>
Thu, 5 Mar 2020 09:40:40 +0000 (10:40 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 5 Mar 2020 09:40:40 +0000 (10:40 +0100)
Support of other variable sizes than that of normal bool ones for
boolean_param() don't make sense, so catch any other sized variables
at build time.

Fix the one parameter using a plain int instead of bool.

Signed-off-by: Juergen Gross <jgross@suse.com>
[add __read_mostly]
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/asid.c
xen/include/xen/param.h

index 8e00a28443a2e5cfb20fcc0406da3e9c586a3ae1..d61d7fc33c2f173ac6c47e735022a73577c57697 100644 (file)
@@ -25,7 +25,7 @@
 #include <asm/hvm/asid.h>
 
 /* Xen command-line option to enable ASIDs */
-static int opt_asid_enabled = 1;
+static bool __read_mostly opt_asid_enabled = true;
 boolean_param("asid", opt_asid_enabled);
 
 /*
index 75471eb4ad717b63f1796555b530e4cce90d9581..d4578cd27f42db5b500390844cca76fc12e590d4 100644 (file)
@@ -2,6 +2,8 @@
 #define _XEN_PARAM_H
 
 #include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/stdbool.h>
 
 /*
  * Used for kernel command line parameter setup
@@ -46,7 +48,8 @@ extern const struct kernel_param __param_start[], __param_end[];
     __kparam __setup_##_var = \
         { .name = __setup_str_##_var, \
           .type = OPT_BOOL, \
-          .len = sizeof(_var), \
+          .len = sizeof(_var) + \
+                 BUILD_BUG_ON_ZERO(sizeof(_var) != sizeof(bool)), \
           .par.var = &_var }
 #define integer_param(_name, _var) \
     __setup_str __setup_str_##_var[] = _name; \
@@ -86,7 +89,8 @@ extern const struct kernel_param __param_start[], __param_end[];
     __rtparam __rtpar_##_var = \
         { .name = _name, \
           .type = OPT_BOOL, \
-          .len = sizeof(_var), \
+          .len = sizeof(_var) + \
+                 BUILD_BUG_ON_ZERO(sizeof(_var) != sizeof(bool)), \
           .par.var = &_var }
 #define integer_runtime_only_param(_name, _var) \
     __rtparam __rtpar_##_var = \