RE: [PATCH] Input: serio: make HYPERV_KEYBOARD depend on SERIO_I8042=y
From: Dexuan Cui <decui@microsoft.com>
Date: 2014-08-14 06:08:34
Also in:
lkml
From: Dexuan Cui <decui@microsoft.com>
Date: 2014-08-14 06:08:34
Also in:
lkml
-----Original Message----- From: Dmitry Torokhovquoted
How about this: in libps2.c let's add and export a function pointer i8042_lock_chip_if_port_owner: it is used to replace the current if (i8042_check_port_owner(ps2dev->serio)) i8042_lock_chip(); The function pointer has a default value NULL, and in i8042.c: i8042_init() we set the function pointer if an i8042 device is found?Hmm, that would make i8042 depend on libps2, which might be OK, but how do you deal with the locking here? I.e. what happens if you unload i8042 right when we go through this sequence?
Ok, I got it.
Maybe we need to split i8042_lock_chip() and friends into a separate module that always loads, even if i8042 is not present. Dmitry
Good idea! However the more difficult thing is i8042_check_port_owner() -- used by libps2.c too. Then the separate module will also have to include and EXPORT DEFINE_SPINLOCK(i8042_lock); struct i8042_port i8042_ports[I8042_NUM_PORTS]; ? This seems a non-trivial change... :-( Thanks, -- Dexuan