kernel-ark/scripts
Roman Kagan b19dcd9341 [PATCH] USB: scripts/mod/file2alias.c: handle numeric ranges for USB bcdDevice
Another attempt at that...

The attached patch fixes the longstanding problem with USB bcdDevice
numeric ranges incorrectly converted into patterns for MODULE_ALIAS
generation.  Previously it put both the lower and the upper limits into
the pattern, dlXdhY, making it impossible to fnmatch against except for
a few special cases, like dl*dh* or dlXdhX.

The patch makes it generate multiple MODULE_ALIAS lines covering the
whole range with fnmatch-able patterns.  E.g. for a range between 0x0001
and 0x8345 it gives the following patterns:

000[1-9]
00[1-9]*
0[1-9]*
[1-7]*
8[0-2]*
83[0-3]*
834[0-5]

Since bcdDevice is 2 bytes wide = 4 digits in hex representation, the
max no. of patters is 2 * 4 - 1 = 7.

The values are BCD (binary-coded decimals) and not hex, so patterns
using a dash seem to be safe regardless of locale collation order.

The patch changes bcdDevice part of the alias from dlXdhY to dZ, but
this shouldn't have big compatibility issues because fnmatch()-based
modprobing hasn't yet been widely used.  Besides, the most common (and
almost the only working) case of dl*dh* becomes d* and thus continues to
work.

The patch is against 2.6.12-rc2, applies to -mm3 with an offset.  The
matching patch to fix the MODALIAS environment variable now generated by
the usb hotplug function follows.

Signed-off-by: Roman Kagan <rkagan@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-04-22 15:07:01 -07:00
..
basic
genksyms
kconfig
ksymoops
lxdialog
mod [PATCH] USB: scripts/mod/file2alias.c: handle numeric ranges for USB bcdDevice 2005-04-22 15:07:01 -07:00
package
bin2c.c
binoffset.c
checkconfig.pl
checkincludes.pl
checkstack.pl
checkversion.pl
conmakehash.c
extract-ikconfig
gcc-version.sh
gen_initramfs_list.sh
kallsyms.c
kernel-doc
Lindent
Makefile
Makefile.build
Makefile.clean
Makefile.host
Makefile.lib
Makefile.modinst
Makefile.modpost
makelst
makeman
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
namespace.pl
patch-kernel
pnmtologo.c
reference_discarded.pl
reference_init.pl
show_delta
split-man
ver_linux [PATCH] 2.6.12-rc1-mm3 Fix ver_linux script for no udev utils. 2005-04-18 21:57:33 -07:00