On 5/20/25 10:10, Andrew Cooper wrote:
Treat "argo" on the command line as a positive boolean, rather than requiring
the user to pass "argo=1/on/enable/true".

Move both opt_argo* variables into __ro_after_init.  They're set during
command line parsing and never modified thereafter.

Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
---
CC: Christopher Clark <christopher.w.cl...@gmail.com>
CC: Daniel P. Smith <dpsm...@apertussolutions.com>
CC: Denis Mukhin <dm...@proton.me>

Found while
---
  xen/common/argo.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index cbe8911a4364..027b37b18a6c 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -79,8 +79,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_argo_unregister_ring_t);
  DEFINE_COMPAT_HANDLE(compat_argo_iov_t);
  #endif
-static bool __read_mostly opt_argo;
-static bool __read_mostly opt_argo_mac_permissive;
+static bool __ro_after_init opt_argo;
+static bool __ro_after_init opt_argo_mac_permissive;
static int __init cf_check parse_argo(const char *s)
  {
@@ -92,7 +92,10 @@ static int __init cf_check parse_argo(const char *s)
          if ( !ss )
              ss = strchr(s, '\0');
- if ( (val = parse_bool(s, ss)) >= 0 )
+        /* Intepret "argo" as a positive boolean. */
+        if ( *s == '\0' )
+            opt_argo = true;
+        else if ( (val = parse_bool(s, ss)) >= 0 )
              opt_argo = val;
          else if ( (val = parse_boolean("mac-permissive", s, ss)) >= 0 )
              opt_argo_mac_permissive = val;

base-commit: 293abb9e0c5e8df96cc5dfe457c62dfcb7542b19

While it is logical, this does technically change the behavior of the command line flag. Should there be an update to xen-command-line.pandoc to clarify that the list is optional?

Other than the doc concern,

Reviewed-by: Daniel P. Smith <dpsm...@apertussolutions.com>


Reply via email to