Re: [PATCH v2 BlueZ] hid2hci: Fix udev rules for linux-4.14+

From: Ville Syrjälä
Date: Wed Dec 05 2018 - 14:40:59 EST


On Wed, Dec 05, 2018 at 08:20:36PM +0100, Greg Kroah-Hartman wrote:
> On Wed, Dec 05, 2018 at 05:40:32PM +0200, Ville Syrjälä wrote:
> > On Wed, Dec 05, 2018 at 08:06:21AM +0100, Greg Kroah-Hartman wrote:
> > > On Tue, Dec 04, 2018 at 10:41:17PM +0200, Ville Syrjala wrote:
> > > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> > > >
> > > > Since commit 1455cf8dbfd0 ("driver core: emit uevents when
> > > > device is bound to a driver") the kernel started emitting
> > > > "bind" and "unbind" uevents which confuse the hid2hci
> > > > udev rules.
> > > >
> > > > The symptoms on an affected machine (Dell E5400 in my case)
> > > > include bluetooth devices not appearing and udev hogging
> > > > the cpu as it's busy processing a constant stream of these
> > > > "bind"+"unbind" uevents.
> > >
> > > What is causing a "stream" of bind and unbind events? This only happens
> > > when a device is attached to a driver or removed from a driver, which is
> > > caused by something else happening.
> >
> > Not sure if it's just due to this thing causing devices to
> > appear/disappear during bind/unbind events or what.
>
> Someone has to be telling the kernel to bind/unbind from a driver to
> a device, it doesn't do it on its own. Look at your other rules/scripts
> for that.
>
> Also note that the kernel has been doing this for over a year now (since
> 4.l4), what just happened in 4.19 to cause this to be an issue?

It became an issue for me after I got a machine that suffers from
this. The regression has been present ever since commit 1455cf8dbfd0
("driver core: emit uevents when device is bound to a driver").

You need a Dell E5400 or something similar to see it since those
have these magic bluetooth devices or whatever.

>
> > > This should not be a normal
> > > occurance, unless something odd is happening to your hardware?
> >
> > It's not specific to my hardware. Lot's of people are affected.
> > See eg.
> > https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1759836
> >
> > Acutally looking through that bug it seems someone else noticed
> > hid2hci failing lot in the logs. So maybe it's just that we already
> > switched the mode during "add", and then we try to redo the same
> > thing during "bind" which fails, and that then causes and unbind?
>
> You have to manually unbind the device, the kernel does not do that. So
> perhaps you have a broken udev rule somewhere else that would do
> something odd like unbind/bind?
>
> I don't see this happening on my systems, but hey, I know better than to
> run Ubuntu :)

As do I. And you don't see it because you don't have the right
hardware.

--
Ville Syrjälä
Intel