Subject: Re: [PATCH 1/2] i2c: Add support for device alias names

From: Jean Delvare <[email-masked]>
Date: Mon, 28 Apr 2008 17:40:10 +0200

Hi Kay,

On Mon, 28 Apr 2008 17:07:25 +0200, Kay Sievers wrote:
> On Mon, 2008-04-28 at 11:39 +0200, Jean Delvare wrote:
> > One thing I am still not happy with is that the aliases created have a
> > trailing "*":
> > 
> > $ /sbin/modinfo lm90
> > filename:       /lib/modules/2.6.25-git11/kernel/drivers/hwmon/lm90.ko
> > author:         Jean Delvare <[email-masked]>
> > description:    LM90/ADM1032 driver
> > license:        GPL
> > vermagic:       2.6.25-git11 mod_unload
> > depends:        hwmon
> > alias:          i2c:lm90*
> > alias:          i2c:adm1032*
> > alias:          i2c:lm99*
> > alias:          i2c:lm86*
> > alias:          i2c:max6657*
> > alias:          i2c:adt7461*
> > alias:          i2c:max6680*
> > $
> > 
> > This would cause trouble if one I2C chip name matches the beginning of
> > another I2C chip name and both chips are supported by different
> > drivers. This has yet to be seen, but still, I'd like to see this
> > problem fixed quickly.
> 
> Right, the trailing "*" is not nice.
> 
> We should terminate the string, so the trailing "*" will not match
> longer strings. The usual thing is to add a ":" to the end, which would
> then show up as
>   alias: i2c:max6680:*
> 
> See DMI and ACPI:
>   alias dmi:*:svnFUJITSU:pnLifeBook*:pvr*:rvnFUJITSU:* apanel
>   alias acpi*:ASIM0000:* atlas_btns

I didn't know about these cases, thanks for the hint.

> 
> If i2c device modaliases could ever contain multiple strings, it should
> be:
>   alias: i2c*:max6680:*
> to match the module, regardless of the order of the strings in the
> modalias:

Why would i2c device modaliases ever contain multiple strings? A device
can't have multiple names, can it?

Adding a ":" at the end of the i2c device names solves the problem I
was mentioning, sure, but why don't we simply remove the trailing "*",
instead of trying to work around it? A trailing "*" simply makes no
sense for aliases which are simple device names. This is not only i2c
devices, but also platform devices, acpi, dmi, pnp... Looking at the
various device types handled by file2alias.c, it seems that most of
them don't need the trailing "*", and many of them have the problem I
was mentioning.

Can't we just stop handle_moddevtable() from adding a tailing "*"
automatically, and just let the device types which need it, add it on
their own?

Thanks,
-- 
Jean Delvare