Re: Multiple MODALIAS= in uevent file confuses userspace

From: Greg Kroah-Hartman
Date: Mon Jan 18 2021 - 11:41:57 EST


On Mon, Jan 18, 2021 at 05:27:44PM +0200, Andy Shevchenko wrote:
> On Mon, Jan 18, 2021 at 03:58:18PM +0100, Greg Kroah-Hartman wrote:
> > On Mon, Jan 18, 2021 at 04:48:53PM +0200, Andy Shevchenko wrote:
> > > On Mon, Jan 18, 2021 at 03:26:28PM +0100, Greg Kroah-Hartman wrote:
> > > > On Mon, Jan 18, 2021 at 04:12:38PM +0200, Mika Westerberg wrote:
> > > > > On Mon, Jan 18, 2021 at 02:50:33PM +0100, Rafael J. Wysocki wrote:
> > > > > > On Mon, Jan 18, 2021 at 8:27 AM Kai-Heng Feng
> > > > > > <kai.heng.feng@xxxxxxxxxxxxx> wrote:
> > > > > > > On Sat, Jan 9, 2021 at 12:25 AM Kai-Heng Feng
> > > > > > > <kai.heng.feng@xxxxxxxxxxxxx> wrote:
> > > > > > > >
> > > > > > > > Commit 8765c5ba19490 ("ACPI / scan: Rework modalias creation when
> > > > > > > > "compatible" is present") creates two modaliases for certain ACPI
> > > > > > > > devices. However userspace (systemd-udevd in this case) assumes uevent
> > > > > > > > file doesn't have duplicated keys, so two "MODALIAS=" breaks the
> > > > > > > > assumption.
> > > > > > > >
> > > > > > > > Based on the assumption, systemd-udevd internally uses hashmap to
> > > > > > > > store each line of uevent file, so the second modalias always replaces
> > > > > > > > the first modalias.
> > > > > > > >
> > > > > > > > My attempt [1] is to add a new key, "MODALIAS1" for the second
> > > > > > > > modalias. This brings up the question of whether each key in uevent
> > > > > > > > file is unique. If it's no unique, this may break may userspace.
> > > > > > >
> > > > > > > Does anyone know if there's any user of the second modalias?
> > > > > > > If there's no user of the second one, can we change it to OF_MODALIAS
> > > > > > > or COMPAT_MODALIAS?
> > > > >
> > > > > The only users I'm aware are udev and the busybox equivalent (udev,
> > > > > mdev) but I'm not sure if they use the second second modalias at all so
> > > > > OF_MODALIAS for the DT compatible string sounds like a good way to solve
> > > > > this.
> > > >
> > > > As udev seems to "break" with this (which is where we got the original
> > > > report from), I don't think you need to worry about that user :)
> > >
> > > > Does anyone use mdev anymore, and in any ACPI-supported systems?
> > >
> > > Yes, regularly.
> >
> > Ok, and how badly does it break when MODALIAS is multiple lines like
> > this? Or can it handle it?
>
> Since the mentioned change landed into v4.1 I never had a problem with my
> setup. From my point of view it doesn't affect anyhow mdev setup.

Do you actually have a device with multiple entries and try to do a rule
based on it? That's how this was triggered in udev, "normal" operations
work just fine.

thanks,

greg k-h