From: cpaul@redhat.com
To: Benjamin Tissoires <benjamin.tissoires@redhat.com>,
linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Hans de Goede <hdegoede@redhat.com>
Subject: [PATCH] i8042: Add debug_kbd option
Date: Thu, 25 Jun 2015 15:25:10 -0400 [thread overview]
Message-ID: <1435260310-10074-1-git-send-email-cpaul@redhat.com> (raw)
From: Stephen Chandler Paul <cpaul@redhat.com>
A big problem with the current i8042 debugging option is that it outputs
data going to and from the keyboard by default. As a result, many dmesg
logs uploaded by users will unintentionally contain sensitive information
such as their password, as such it's probably a good idea not to output
data coming from the keyboard unless specifically enabled by the user.
Signed-off-by: Stephen Chandler Paul <cpaul@redhat.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
Documentation/kernel-parameters.txt | 7 +++++++
drivers/input/serio/i8042.c | 25 +++++++++++++++++++++----
2 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index ae44749..9e00234 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1304,6 +1304,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
<bus_id>,<clkrate>
i8042.debug [HW] Toggle i8042 debug mode
+ i8042.debug_kbd [HW] Enable printing of interrupt data from the KBD port
+ As a side effect, this option will mask some of the
+ interrupts sent back from the keyboard during the
+ initialization of the KBD port on the i8042, if you
+ need to see this, you will need to enable this
+ option.
+ (disabled by default)
i8042.direct [HW] Put keyboard port into non-translated mode
i8042.dumbkbd [HW] Pretend that controller can only read data from
keyboard and cannot control its state
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index cb5ece7..084fc05 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -88,6 +88,23 @@ MODULE_PARM_DESC(nopnp, "Do not use PNP to detect controller settings");
static bool i8042_debug;
module_param_named(debug, i8042_debug, bool, 0600);
MODULE_PARM_DESC(debug, "Turn i8042 debugging mode on and off");
+
+static bool i8042_debug_kbd;
+module_param_named(debug_kbd, i8042_debug_kbd, bool, 0600);
+MODULE_PARM_DESC(i8042_kbd, "Turn i8042 kbd debugging output on or off");
+
+#define str_dbg(str, data, format, args...) \
+ do { \
+ if (!i8042_debug) \
+ break; \
+ \
+ if (str & I8042_STR_AUXDATA || i8042_debug_kbd) \
+ dbg("%02x " format, data, ##args); \
+ else \
+ dbg("** " format, ##args); \
+ } while (0)
+#else
+#define str_dbg(str, data, format, args...) do { } while (0)
#endif
static bool i8042_bypass_aux_irq_test;
@@ -528,10 +545,10 @@ static irqreturn_t i8042_interrupt(int irq, void *dev_id)
port = &i8042_ports[port_no];
serio = port->exists ? port->serio : NULL;
- dbg("%02x <- i8042 (interrupt, %d, %d%s%s)\n",
- data, port_no, irq,
- dfl & SERIO_PARITY ? ", bad parity" : "",
- dfl & SERIO_TIMEOUT ? ", timeout" : "");
+ str_dbg(str, data, "<- i8042 (interrupt, %d, %d%s%s)\n",
+ port_no, irq,
+ dfl & SERIO_PARITY ? ", bad parity" : "",
+ dfl & SERIO_TIMEOUT ? ", timeout" : "");
filtered = i8042_filter(data, str, serio);
--
2.4.3
next reply other threads:[~2015-06-25 19:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 19:25 cpaul [this message]
2015-06-25 20:00 ` Joe Perches
2015-06-25 20:32 ` Dmitry Torokhov
2015-06-25 21:31 ` Stephen Chandler Paul
2015-06-25 21:35 ` Dmitry Torokhov
2015-06-25 22:12 ` Stephen Chandler Paul
2015-06-26 19:28 ` [PATCH v2] " cpaul
2015-06-26 22:28 ` [PATCH v3] " cpaul
2015-06-26 23:05 ` Dmitry Torokhov
2015-06-26 23:21 ` Stephen Chandler Paul
2015-06-26 23:24 ` Dmitry Torokhov
2015-06-27 0:24 ` [PATCH v4] " cpaul
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=1435260310-10074-1-git-send-email-cpaul@redhat.com \
--to=cpaul@redhat.com \
--cc=benjamin.tissoires@redhat.com \
--cc=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome