On 11/30/22 17:50, Kim Phillips wrote: > @@ -1240,8 +1240,11 @@ static const struct { > { "retpoline,lfence", SPECTRE_V2_CMD_RETPOLINE_LFENCE, false }, > { "retpoline,generic", SPECTRE_V2_CMD_RETPOLINE_GENERIC, false }, > { "eibrs", SPECTRE_V2_CMD_EIBRS, false }, > + { "autoibrs", SPECTRE_V2_CMD_EIBRS, false }, > { "eibrs,lfence", SPECTRE_V2_CMD_EIBRS_LFENCE, false }, > + { "autoibrs,lfence", SPECTRE_V2_CMD_EIBRS_LFENCE, false }, > { "eibrs,retpoline", SPECTRE_V2_CMD_EIBRS_RETPOLINE, false }, > + { "autoibrs,retpoline", SPECTRE_V2_CMD_EIBRS_RETPOLINE, false }, > { "auto", SPECTRE_V2_CMD_AUTO, false }, > { "ibrs", SPECTRE_V2_CMD_IBRS, false }, I don't think we should expose "autoibrs" to end users like this. "eibrs" means always-on IBRS. Intel did it first, so gets to name it. Those are the rules, and it's why we call it "x86_64" and not whatever Intel's silly name for it was. Also, expanding the strings: > + [SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced / Automatic IBRS + Retpolines", is fine, but adding new user-visible options that we have to document is not.