linux/scripts
Jean Delvare ac55182899 modpost: i2c aliases need no trailing wildcard
Not all device types need a wildcard at the end of their module
aliases. In particular, for i2c module aliases, the trailing wildcard
is not only unneeded, it could also cause the wrong driver to be
loaded.

As I2C devices have no IDs, i2c module aliases are simple, arbitrary
device names. For example:

$ /sbin/modinfo lm90
filename:       /lib/modules/2.6.25-git18/kernel/drivers/hwmon/lm90.ko
author:         Jean Delvare <khali@linux-fr.org>
description:    LM90/ADM1032 driver
license:        GPL
vermagic:       2.6.25-git18 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. For example, an i2c device named lm9042 would cause the lm90
driver to be loaded, while it doesn't support that device. This case
has yet to be seen in practice, but still, I'd like to fix it now. The
cleanest fix is to remove the trailing wildcard from i2c module aliases.

Here's a patch doing this.

Not all device type aliases need a trailing wildcard, in particular
the i2c aliases don't. Don't add a wildcard by default in do_table(),
instead let each device type handler add it if needed.

I have tested types acpi, dmi, eisa, i2c, ide, ieee1394, input, pci,
pcmcia, platform, pnp, scsi, serio, ssb and usb. Other types (ccw, of,
vio, parisc, sdio and virtio) are untested.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Jochen Friedrich <jochen@scram.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-05-04 09:24:47 +02:00
..
basic
genksyms
kconfig kconfig: made check-lxdialog more portable 2008-05-01 19:29:47 +02:00
ksymoops
mod modpost: i2c aliases need no trailing wildcard 2008-05-04 09:24:47 +02:00
package Kbuild: Fix deb-pkg target to work with kernel versions ending with -<text-without-digit> 2008-02-09 10:51:47 +01:00
rt-tester [PATCH] rtmutex: Modify rtmutex-tester to test the setscheduler propagation 2006-06-27 17:32:47 -07:00
.gitignore Add binoffset to gitignore 2008-02-09 10:43:58 +01:00
bin2c.c
binoffset.c
bloat-o-meter
checkincludes.pl
checkkconfigsymbols.sh
checkpatch.pl update checkpatch.pl to version 0.18 2008-04-29 08:06:05 -07:00
checkstack.pl Claim maintainership for block2mtd and update email addresses 2008-02-06 10:41:09 -08:00
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
conmakehash.c
decodecode
export_report.pl
extract-ikconfig
gcc-version.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh kbuild: fix unportability in gen_initramfs_list.sh 2008-04-28 22:50:51 +02:00
hdrcheck.sh
kallsyms.c kallsyms: nuke all ChangeLog, this should be logged by git 2008-04-30 08:29:31 -07:00
Kbuild.include kbuild: fix make V=1 2008-02-11 17:43:54 +01:00
kernel-doc kernel-doc: detect trailing kernel-doc line trash 2008-04-28 08:58:48 -07:00
Lindent scripts/Lindent: support gnu indent v2.2.10 2008-04-29 08:06:04 -07:00
Makefile
Makefile.build kbuild: fix some minor typoes 2008-04-25 20:18:48 +02:00
Makefile.clean kbuild: fix some minor typoes 2008-04-25 20:18:48 +02:00
Makefile.headersinst
Makefile.host kbuild: fix some minor typoes 2008-04-25 20:18:48 +02:00
Makefile.lib
Makefile.modinst
Makefile.modpost kbuild: scripts/Makefile.modpost typo fix 2008-04-26 21:08:25 +02:00
makelst
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
namespace.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
setlocalversion kbuild: add svn revision information to setlocalversion 2008-02-03 08:59:50 +01:00
show_delta
unifdef.c
ver_linux