]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
hil/parisc: Disable HIL driver when it gets stuck
authorHelge Deller <deller@gmx.de>
Mon, 19 Oct 2020 14:57:50 +0000 (16:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Nov 2020 10:51:54 +0000 (11:51 +0100)
commite25d2556c756d22b62149af8a357c85bce0d1f8a
tree77b578b2706c6ab0c146d1fc2aab9810326ce3bb
parent6657fd8e618e3d31c4338fe5ed807c9ac16b8395
hil/parisc: Disable HIL driver when it gets stuck

commit 879bc2d27904354b98ca295b6168718e045c4aa2 upstream.

When starting a HP machine with HIL driver but without an HIL keyboard
or HIL mouse attached, it may happen that data written to the HIL loop
gets stuck (e.g. because the transaction queue is full).  Usually one
will then have to reboot the machine because all you see is and endless
output of:
 Transaction add failed: transaction already queued?

In the higher layers hp_sdc_enqueue_transaction() is called to queued up
a HIL packet. This function returns an error code, and this patch adds
the necessary checks for this return code and disables the HIL driver if
further packets can't be sent.

Tested on a HP 730 and a HP 715/64 machine.

Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/input/serio/hil_mlc.c
drivers/input/serio/hp_sdc_mlc.c
include/linux/hil_mlc.h