Re: [PATCH 3.12 098/100] Input: i8042 - break load dependency between atkbd/psmouse and i8042

From: Jiri Slaby
Date: Fri Aug 19 2016 - 06:06:37 EST


On 08/19/2016, 09:11 AM, Jiri Slaby wrote:
> From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
>
> 3.12-stable review patch. If anyone has any objections, please let me know.
>
> ===============
>
> commit 4097461897df91041382ff6fcd2bfa7ee6b2448c upstream.
>
> As explained in 1407814240-4275-1-git-send-email-decui@xxxxxxxxxxxxx we
> have a hard load dependency between i8042 and atkbd which prevents
> keyboard from working on Gen2 Hyper-V VMs.
>
>> hyperv_keyboard invokes serio_interrupt(), which needs a valid serio
>> driver like atkbd.c. atkbd.c depends on libps2.c because it invokes
>> ps2_command(). libps2.c depends on i8042.c because it invokes
>> i8042_check_port_owner(). As a result, hyperv_keyboard actually
>> depends on i8042.c.
>>
>> For a Generation 2 Hyper-V VM (meaning no i8042 device emulated), if a
>> Linux VM (like Arch Linux) happens to configure CONFIG_SERIO_I8042=m
>> rather than =y, atkbd.ko can't load because i8042.ko can't load(due to
>> no i8042 device emulated) and finally hyperv_keyboard can't work and
>> the user can't input: https://bugs.archlinux.org/task/39820
>> (Ubuntu/RHEL/SUSE aren't affected since they use CONFIG_SERIO_I8042=y)
>
> To break the dependency we move away from using i8042_check_port_owner()
> and instead allow serio port owner specify a mutex that clients should use
> to serialize PS/2 command stream.
>
> Reported-by: Mark Laws <mdl@xxxxxxxx>
> Tested-by: Mark Laws <mdl@xxxxxxxx>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>

Dropped from 3.12 for the same reason as in
CAKdAkRS7-hrnMn-ibWT_+1eM859GuPZAg=fSqGQrY8bT7zC+rw@xxxxxxxxxxxxxxx

--
js
suse labs