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

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

Hi Jon,

On Mon, 28 Apr 2008 10:43:35 -0400, Jon Smirl wrote:
> On 4/28/08, Jean Delvare <[email-masked]> 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.
> 
> 
> Trailing wildcard is always added by file2alias.c:
> 
>                 if (do_entry(mod->name, symval+i, alias)) {
>                         /* Always end in a wildcard, for future extension */
>                         if (alias[strlen(alias)-1] != '*')
>                                 strcat(alias, "*");
> 
> 
> Can't the match order be controlled in the makefile? For example if
> you had lm905* and lm90*, put lm905* into into the makefile first
> which will cause it to appear in the alias file first. But that would
> still cause problems if only lm90 was built and you had a lm905
> device.

That's too trickly and fragile - I'd rather make sure that wrong
matches just can't happen.

> 
> Alternatively you could change the code to append something like a
> period to the name string.
> 
> sprintf(alias, I2C_MODULE_PREFIX "%s.", id->name);

Similar to what Kay proposed. It works and we'll do that if we have to,
but if we can just get rid of the "*" I'd rather do that.

> 
> I was using macros to alter the name strings to move the PowerPC names
> into their own namespace.
> 

-- 
Jean Delvare