[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/CET: Support cet=<bool> on the command line
commit f9a2e86f21f7c72e8dc7a8939781ec1bc75e21cf Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Thu Apr 28 09:44:02 2022 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Wed Dec 18 13:18:19 2024 +0000 x86/CET: Support cet=<bool> on the command line ... as a shorthand for setting both suboptions at once. Currently, an admin needs to pass cet=no-shstk,no-ibt to turn both off, where cet=0 is a better option. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- docs/misc/xen-command-line.pandoc | 4 +++- xen/arch/x86/setup.c | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc index 293dbc1a95..67727f15e9 100644 --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -271,7 +271,7 @@ enough. Setting this to a high value may cause boot failure, particularly if the NMI watchdog is also enabled. ### cet - = List of [ shstk=<bool>, ibt=<bool> ] + = List of [ <bool>, shstk=<bool>, ibt=<bool> ] Applicability: x86 @@ -283,6 +283,8 @@ CET is incompatible with 32bit PV guests. If any CET sub-options are active, they will override the `pv=32` boolean to `false`. Backwards compatibility can be maintained with the pv-shim mechanism. +* An unqualified boolean is a shorthand for setting all suboptions at once. + * The `shstk=` boolean controls whether Xen uses Shadow Stacks for its own protection. diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 0a748e2c14..3d51c80626 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -121,7 +121,19 @@ static int __init cf_check parse_cet(const char *s) if ( !ss ) ss = strchr(s, '\0'); - if ( (val = parse_boolean("shstk", s, ss)) >= 0 ) + if ( (val = parse_bool(s, ss)) >= 0 ) + { +#if !defined(CONFIG_XEN_SHSTK) && !defined(CONFIG_XEN_IBT) + no_config_param("XEN_{SHSTK,IBT}", "cet", s, ss); +#endif +#ifdef CONFIG_XEN_SHSTK + opt_xen_shstk = val; +#endif +#ifdef CONFIG_XEN_IBT + opt_xen_ibt = val; +#endif + } + else if ( (val = parse_boolean("shstk", s, ss)) >= 0 ) { #ifdef CONFIG_XEN_SHSTK opt_xen_shstk = val; -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |