From mboxrd@z Thu Jan 1 00:00:00 1970 From: Plato Date: Wed, 05 Dec 2001 00:42:10 +0000 Subject: 2.2 bcdDevice munging patch Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org Sorry for the broken thread, but I've only just subscribed to the list. Dave: > Sounds fair to me. Though it'll need to be a bit smarter, since I > think the current code says "if the kernel is 2.2 then ..." and it'd > have to change to handle two types of 2.2 kernels (original, new). That's not necessary. usb.agent only cares which kernel version is running when deciding which of $MAP_CURRENT or $MAP_DISTMAP to use. The code which munges the bcdDevice number is kernel independent. It will not change a four hex-digit number specified by a 2.4 kernel, but will change a number with a decimal point from a 2.2 kernel. > That is, the newer 2.2 kernels would need updated hotplug scripts. If 2.2.21 produced a four hex-digit number it would _not_ need an update to my patch. Greg: > I'd recommend fixing the 2.2 kernel code to work the same way as 2.4.x. > The hotplug code was enabled right at the end of the 2.2.20 development > cycle, and this problem must have slipped through. The problem has been solved now in userspace. If my patch is implemented then `broken' 2.2 kernels will work, along with 2.4, and later 2.2 kernels possibly incorporating a fix. The munging already exists. Unfortunately it does not work for all possible values of bcdDevice. If you are going to continue to support 2.2 kernels you should fix this. I believe my patch fixes this. The problem, for those of you that are not aware, is due to a difference in the PRODUCT environment variable for use by the usb.agent between 2.2 and 2.4 kernels. PRODUCT is of the form xxxx/xxxx/xxxx, i.e four hex numbers separated by slashes. The 2.4 kernel specifies the third of these numbers as `abcd', where a, b, c, d are four hex digits. The 2.2 kernel specifies the third of these numbers as `ab.cd' It also omits a and d if they are zero. There is a `munge' in the current usb.agent which seeks to rectify this. Unfortunately it does not seem to work for some cases, e.g. PRODUCT=.../.../10.0 I'd be happy to hear any comments that you may have. Keep up the good work! Plato _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel