[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <EE124450C0AAF944A40DD71E61F878C9929597@SINEX14MBXC417.southpacific.corp.microsoft.com>
Date: Thu, 14 Aug 2014 06:07:11 +0000
From: Dexuan Cui <decui@...rosoft.com>
To: Dmitry Torokhov <dmitry.torokhov@...il.com>
CC: Greg KH <gregkh@...uxfoundation.org>,
"linux-input@...r.kernel.org" <linux-input@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"driverdev-devel@...uxdriverproject.org"
<driverdev-devel@...uxdriverproject.org>,
"olaf@...fle.de" <olaf@...fle.de>,
"apw@...onical.com" <apw@...onical.com>,
"jasowang@...hat.com" <jasowang@...hat.com>,
KY Srinivasan <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>
Subject: RE: [PATCH] Input: serio: make HYPERV_KEYBOARD depend on
SERIO_I8042=y
> -----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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists