LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: X86 ML <x86@kernel.org>
Cc: "Ricardo Neri" <ricardo.neri-calderon@linux.intel.com>,
LKML <linux-kernel@vger.kernel.org>,
"Marcus Rückert" <mrueckert@suse.com>
Subject: [PATCH] x86/umip: Add a umip= cmdline switch
Date: Tue, 7 Sep 2021 22:04:54 +0200 [thread overview]
Message-ID: <20210907200454.30458-1-bp@alien8.de> (raw)
From: Borislav Petkov <bp@suse.de>
And add the first control option
umip=warnings_off
which disables warnings resulting from emulating UMIP-enabled insns.
The actual use case is for users playing games in wine, games like
Overwatch, for example, which go nuts with SIDT:
[Di Sep 7 00:24:05 2021] umip_printk: 1345 callbacks suppressed
[Di Sep 7 00:24:05 2021] umip: someapp.exe[29231] ip:14064cdba sp:11b7c0: SIDT instruction cannot be used by applications.
[Di Sep 7 00:24:05 2021] umip: someapp.exe[29231] ip:14064cdba sp:11b7c0: For now, expensive software emulation returns the result.
...
[Di Sep 7 00:26:06 2021] umip_printk: 2227 callbacks suppressed
[Di Sep 7 00:26:06 2021] umip: someapp.exe[29231] ip:14064cdba sp:11b940: SIDT instruction cannot be used by applications.
filling up the kernel log unnecessarily with the same info over and over
again which doesn't mean a whit to the users - they just wanna play.
So add a boot-time control switch for those warning messages.
Reported-by: Marcus Rückert <mrueckert@suse.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
---
.../admin-guide/kernel-parameters.txt | 5 +++
arch/x86/kernel/umip.c | 33 +++++++++++++++++--
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 828d11441ebf..815d022c3e87 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -5887,6 +5887,11 @@
unknown_nmi_panic
[X86] Cause panic on unknown NMI.
+ umip=warnings_off
+ [X86]
+ * warnings_off - do not issue warnings when emulating
+ UMIP-enabled instructions.
+
usbcore.authorized_default=
[USB] Default USB device authorization:
(default -1 = authorized except for wireless USB,
diff --git a/arch/x86/kernel/umip.c b/arch/x86/kernel/umip.c
index 576b47e7523d..1d37dc626011 100644
--- a/arch/x86/kernel/umip.c
+++ b/arch/x86/kernel/umip.c
@@ -90,10 +90,19 @@ static const char * const umip_insns[5] = {
[UMIP_INST_STR] = "STR",
};
-#define umip_pr_err(regs, fmt, ...) \
+static struct umip_config {
+ __u64 warnings_off : 1,
+ __reserved : 63;
+} umip_cfg;
+
+#define umip_pr_err(regs, fmt, ...) \
umip_printk(regs, KERN_ERR, fmt, ##__VA_ARGS__)
-#define umip_pr_warn(regs, fmt, ...) \
- umip_printk(regs, KERN_WARNING, fmt, ##__VA_ARGS__)
+
+#define umip_pr_warn(regs, fmt, ...) \
+({ \
+ if (!umip_cfg.warnings_off) \
+ umip_printk(regs, KERN_WARNING, fmt, ##__VA_ARGS__); \
+})
/**
* umip_printk() - Print a rate-limited message
@@ -407,5 +416,23 @@ bool fixup_umip_exception(struct pt_regs *regs)
/* increase IP to let the program keep going */
regs->ip += insn.length;
+
return true;
}
+
+static int __init parse_umip_param(char *str)
+{
+ if (!str)
+ return 0;
+
+ if (*str == '=')
+ str++;
+
+ if (!strcmp(str, "warnings_off"))
+ umip_cfg.warnings_off = 1;
+ else
+ return 0;
+
+ return 1;
+}
+__setup("umip", parse_umip_param);
--
2.29.2
next reply other threads:[~2021-09-07 20:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-07 20:04 Borislav Petkov [this message]
2021-09-11 1:14 ` Ricardo Neri
2021-09-11 9:20 ` Borislav Petkov
2021-09-13 21:38 ` Ricardo Neri
2021-09-14 16:51 ` Borislav Petkov
2021-09-15 11:34 ` Ricardo Neri
2021-09-15 12:21 ` Marcus Rückert
2021-09-15 13:00 ` Ricardo Neri
2021-09-15 13:14 ` Borislav Petkov
2021-09-15 14:46 ` [PATCH] x86/umip: Downgrade warning messages to debug loglevel Borislav Petkov
2021-09-16 0:27 ` Ricardo Neri
2021-09-23 14:59 ` Borislav Petkov
2021-09-13 21:45 ` [PATCH] x86/umip: Add a umip= cmdline switch Ricardo Neri
2021-09-14 16:52 ` Borislav Petkov
2021-09-23 15:03 ` [tip: x86/cpu] x86/umip: Downgrade warning messages to debug loglevel tip-bot2 for Borislav Petkov
2021-09-25 11:31 ` tip-bot2 for Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210907200454.30458-1-bp@alien8.de \
--to=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mrueckert@suse.com \
--cc=ricardo.neri-calderon@linux.intel.com \
--cc=x86@kernel.org \
--subject='Re: [PATCH] x86/umip: Add a umip= cmdline switch' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).