RE: [PATCH] Input: serio: make HYPERV_KEYBOARD depend on SERIO_I8042=y

From: Dexuan Cui
Date: Thu Aug 14 2014 - 02:08:37 EST


> -----Original Message-----
> From: Dmitry Torokhov
> > 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/