Skip to contentSkip to conversation

file2alias - incorrect ? aliases for USB

DISCUSSION Andrey Borzenkov=?koi8-r?Q?=22=20?= 1 participant 1 message Nov 10, 2003

lore
Share & tools
lore
#0 lore raw

-----Original Message-----

Quoted 30 lines · Andrey Borzenkov
Quoted 20 lines

file2aliases puts in alias device ID high and low numbers directly from match specifications. E.g. for this match table entry:

usb-storage 0x000f 0x04e6 0x0006 0x0100 0x0205 ...

it generates alias

alias usb:v04E6p0006dl0100dh0205dc*dsc*dp*ic*isc*ip* usb_storage

unfortunately real device attribute does not include high and low - rather it has single device ID (as part of PRODUCT) that should be contained in these bounds:

        length += snprintf (scratch, buffer_size - length, "PRODUCT=%x/%x/%x",
                            usb_dev->descriptor.idVendor,
                            usb_dev->descriptor.idProduct,
                            usb_dev->descriptor.bcdDevice);

or bcdDevice file in sysfs.

Quoted 7 lines

This makes those aliases rather useless for the purpose of matching reported device. It may take the same route as PCI and reject all device ID table entries that have High != Low but there are quite a few of them available.

I am rather confused because I do not see how this condition (low <= bcdDevice <= high) can be expressed using simple glob pattern (unless we are going to take glob library from Zsh :)

Quoted 7 lines

I would suggest just ignoring the bcdDevice value, and loading all modules that match the idVendor and idProduct values, and let the kernel sort it out :)

So for your example, you would just:

	modprobe usb:v04E6p0006dl*dh*dc*dsc*dp*ic*isc*ip* 

any reason we put in alias fields that apparently won't be used at all?

Quoted 12 lines

Hm, but that's no good either, because the visor driver trips over that with its entry:

	MODULE_ALIAS("usb:v*p*dl*dh*dc*dsc*dp*ic*isc*ip*");

and the improper module is loaded. That needs to be fixed up...

Rusty, any reason why the module alias code is turning an empty MODULE_PARAM structure, as is declared in drivers/usb/serial/visor.c with the line:
{ }, /* optional parameter entry */

Into the above MODULE_ALIAS? I don't think that's correct.

Subject: [PATCH][2.6.0-test9] prevent catch-all USB aliases in modules.alias

http://marc.theaimsgroup.com/?l=linux-kernel&m6787897124700&w=2

regards

-andrey

-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel