From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Brownell Date: Mon, 08 Jan 2001 21:41:36 +0000 Subject: Announce: updated USB hotplug support MIME-Version: 1 Content-Type: multipart/mixed; boundary="----=_NextPart_000_03C7_01C07978.B86A8940" Message-Id: List-Id: To: linux-hotplug@vger.kernel.org This is a multi-part message in MIME format. ------=_NextPart_000_03C7_01C07978.B86A8940 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Matching Keith's modutils update, here's a a package of hotplug scripts ... not yet as neatly packaged! And also, not (yet) handling with the older file format for the "modules.usbmap" files associated with 2.4.0 test (and prerelease) kernels. It "ought" to behave with the usb hotplug support in 2.2.18 kernels. Extract into /etc/hotplug, and see the README. There's a network hotplug agent but no PCI/Cardbus agent. Followups to linux-hotplug-devel please. - Dave > From: Keith Owens > To: > Cc: ; > Sent: Monday, January 08, 2001 7:52 AM > Subject: Announce: modutils 2.4.1 is available > > In the absence of any screams of pain from the usb list, modutils 2.4.1 > is released for your enjoyment. > > ftp://ftp..kernel.org/pub/linux/utils/kernel/modutils/v2.4 > > modutils-2.4.1.tar.gz Source tarball, includes RPM spec file > modutils-2.4.1-1.src.rpm As above, in SRPM format > modutils-2.4.1-1.i386.rpm Compiled with egcs-2.91.66, glibc 2.1.2 > modutils-2.4.1-1.sparc.rpm Compiled for combined sparc 32/64 > patch-modutils-2.4.1.gz Patch from modutils 2.4.0 to 2.4.1. > > Related kernel patches. > > patch-2.4.0-hotplug.gz Correctly handle USB modules in kernel 2.4.0. > The fix adds a version number to tables read by > depmod, this affects all kernel hotplug tables, > not just USB. Required for USB on 2.4.0. > > patch-2.4.0-persistent.gz Adds persistent data and generic string > support to kernel 2.4.0. Optional. > > Changelog extract > > * Cast 2*sizeof to int in printf, new gcc warns about this. > * Add an optional version number to kernel tables. > * Handle version 1 and 2 usb device tables. > * man lsmod documents use count -1. > > NOTE: > > Handling the change of format for the USB tables highlighted the need > for the kernel to include a version number against each table to tell > depmod which format table it is processing. Checking for a change in > table size was not enough. You _must_ apply patch-2.4.0-hotplug to > 2.4.0 kernels in order to pick up the new USB table format. You will > also need a new set of USB utilities that understand match_flags. > > patch-2.4.0-hotplug hits all hotplug tables, not just USB. The > kernel and modutils changes are forward and backward compatible; old > kernels will run with new modutils and vice versa. The only > combination not supported is USB hotplugging in an unpatched kernel > 2.4.0, there is no way for any version of modutils to detect which > format USB table is being used in unpatched 2.4.0 kernels. > > patch-2.4.0-hotplug follows for reference, it is also in the URL at the > top of this mail. With any luck this patch will be included in kernel > 2.4.1. > > Index: 0.1/include/linux/usb.h > - --- 0.1/include/linux/usb.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/Z/38_usb.h 1.1 644) > +++ 0.1(w)/include/linux/usb.h Sun, 07 Jan 2001 22:36:31 +1100 kaos (linux-2.4/Z/38_usb.h 1.1 644) > @@ -344,12 +344,18 @@ struct usb_device; > #define USB_INTERFACE_INFO(cl,sc,pr) \ > match_flags: USB_DEVICE_ID_MATCH_INT_INFO, bInterfaceClass: (cl), bInterfaceSubClass: (sc), bInterfaceProtocol: (pr) > > - -struct usb_device_id { > - - /* This bitmask is used to determine which of the following fields > - - * are to be used for matching. > - - */ > - - __u16 match_flags; > +/* match_flags added in 2.4.0 but at the start which messed up depmod. > + * match_flags moved to before driver_info in 2.4.1 by KAO, you also need > + * modutils 2.4.1. USB modules cannot be supported in kernel 2.4.0, > + * insufficient data to detect which table format is being used. > + * > + * Do NOT change this table format without checking with the modutils > + * maintainer. This is an ABI visible structure. > + */ > + > +#define usb_device_id_ver 2 /* Version 2 table */ > > +struct usb_device_id { > /* > * vendor/product codes are checked, if vendor is nonzero > * Range is for device revision (bcdDevice), inclusive; > @@ -374,6 +380,11 @@ struct usb_device_id { > __u8 bInterfaceClass; > __u8 bInterfaceSubClass; > __u8 bInterfaceProtocol; > + > + /* This bitmask is used to determine which of the preceding fields > + * are to be used for matching. > + */ > + __u16 match_flags; /* New in version 2 */ > > /* > * for driver's use; not involved in driver matching. > Index: 0.1/include/linux/isapnp.h > - --- 0.1/include/linux/isapnp.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/b/b/11_isapnp.h 1.1 644) > +++ 0.1(w)/include/linux/isapnp.h Sun, 07 Jan 2001 22:36:40 +1100 kaos (linux-2.4/b/b/11_isapnp.h 1.1 644) > @@ -142,6 +142,16 @@ struct isapnp_resources { > #define ISAPNP_CARD_TABLE(name) \ > MODULE_GENERIC_TABLE(isapnp_card, name) > > +/* Do NOT change the format of struct isapnp_card_id, struct isapnp_device_id or > + * the value of ISAPNP_CARD_DEVS without checking with the modutils maintainer. > + * These are ABI visible structures and defines. > + * > + * isapnp_device_id_ver is a single version number for the combination of > + * struct isapnp_card_id and struct isapnp_device_id. > + */ > + > +#define isapnp_device_id_ver 1 /* Version 1 tables */ > + > struct isapnp_card_id { > unsigned long driver_data; /* data private to the driver */ > unsigned short card_vendor, card_device; > Index: 0.1/include/linux/module.h > - --- 0.1/include/linux/module.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/c/b/46_module.h 1.1 644) > +++ 0.1(w)/include/linux/module.h Sun, 07 Jan 2001 22:07:49 +1100 kaos (linux-2.4/c/b/46_module.h 1.1 644) > @@ -242,19 +242,17 @@ __attribute__((section(".modinfo"))) = > * isapnp - struct isapnp_device_id - List of ISA PnP ids supported by this module > * usb - struct usb_device_id - List of USB ids supported by this module > */ > - -#define MODULE_GENERIC_TABLE(gtype,name) \ > - -static const unsigned long __module_##gtype##_size \ > - - __attribute__ ((unused)) = sizeof(struct gtype##_id); \ > - -static const struct gtype##_id * __module_##gtype##_table \ > - - __attribute__ ((unused)) = name > - -#define MODULE_DEVICE_TABLE(type,name) \ > - - MODULE_GENERIC_TABLE(type##_device,name) > - -/* not put to .modinfo section to avoid section type conflicts */ > > - -/* The attributes of a section are set the first time the section is > - - seen; we want .modinfo to not be allocated. */ > +#define MODULE_GENERIC_TABLE(gtype,name) \ > +static const unsigned long __module_##gtype##_size \ > + __attribute__ ((unused)) = sizeof(struct gtype##_id); \ > +static const unsigned long __module_##gtype##_ver \ > + __attribute__ ((unused)) = gtype##_id_ver; \ > +static const struct gtype##_id * __module_##gtype##_table \ > + __attribute__ ((unused)) = name > > - -__asm__(".section .modinfo\n\t.previous"); > +#define MODULE_DEVICE_TABLE(type,name) \ > + MODULE_GENERIC_TABLE(type##_device,name) > > /* Define the module variable, and usage macros. */ > extern struct module __this_module; > Index: 0.1/include/linux/pci.h > - --- 0.1/include/linux/pci.h Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/f/b/12_pci.h 1.1 644) > +++ 0.1(w)/include/linux/pci.h Sun, 07 Jan 2001 22:36:09 +1100 kaos (linux-2.4/f/b/12_pci.h 1.1 644) > @@ -439,6 +439,12 @@ struct pbus_set_ranges_data > unsigned long mem_start, mem_end; > }; > > +/* Do NOT change this table format without checking with the modutils > + * maintainer. This is an ABI visible structure. > + */ > + > +#define pci_device_id_ver 1 /* Version 1 table */ > + > struct pci_device_id { > unsigned int vendor, device; /* Vendor and device ID or PCI_ANY_ID */ > unsigned int subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */ > Index: 0.1/Documentation/Changes > - --- 0.1/Documentation/Changes Fri, 05 Jan 2001 13:42:29 +1100 kaos (linux-2.4/Z/c/26_Changes 1.1 644) > +++ 0.4(w)/Documentation/Changes Tue, 09 Jan 2001 02:43:44 +1100 kaos (linux-2.4/Z/c/26_Changes 1.1 644) > @@ -52,7 +52,7 @@ o Gnu C 2.91.66 > o Gnu make 3.77 # make --version > o binutils 2.9.1.0.25 # ld -v > o util-linux 2.10o # fdformat --version > - -o modutils 2.4.0 # insmod -V > +o modutils 2.4.1 # insmod -V > o e2fsprogs 1.19 # tune2fs --version > o pcmcia-cs 3.1.21 # cardmgr -V > o PPP 2.4.0 # pppd --version > ------=_NextPart_000_03C7_01C07978.B86A8940 Content-Type: application/x-gzip; name="hotplug-8-Jan-2001.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hotplug-8-Jan-2001.tar.gz" H4sIAKgvWjoAA+xbaXMbR5L1V/SvKDUZK0CDg6AoaZZcjpYHJMIiCQYPy96JWarRXQDaBLrhPkhi bP/3eZlZ1QdJyfPB8sZGGOOhSKC6jqzMly8PnA/2Dk8G33zV10Z/Y+P11tY3G3i9eV3/d2Ojv/X6 9atvNt5sbr7e2sTbGzQe732jNr7utuSVp5mXKPXNIv4x/tK43/r8/+nr49HepTocqY8DdbT3HX4M zgdvnc5TL+cozpbzfDoNo6lK/SRcZmlbXV3sq0ns52mqg7bKZl6m0lmczwN1Fyc3Ko7UZndTeVGA f7fUjU4iPU+7jnM5C1O19JIs9PM5buBWJ2mI0Xdx9Dwrns10mtmPUhVPsICuTtR2aObm6ehy8Kyl Iq2DVHnmQ8ye+TPlpWnsh16msaMwm6lFHORZOE9pmm5/x3GOwyi/t8/MqmfMl8s4yVSi56FOaTtm VZXFaqyVH0eTcJonZmbnaHR5dnz1fodO24ZQEjWPvYBmojXpkEES0mHa6sPJ6LCr1IGdgcTYVqeD yzY97JwdDFWTJjjwkmCcp3YrLZxGectlEi8TOhIvsorzROnoNkziaKGjDMJ9h7cXMaYNI4xYeBlJ 1hvHeabktJVjbjuOwmuWZcvtXm9OH3fMx90UU/saU0x1Fz96dG061Th/DCl4WID+//7s+HnAG5e3 br1w7o3n+C3j+7rTY5WG2C12cKuxPcehC7tQe/ujq0t1eTS8UN8Nzi+Go9OnNY+Uj/UlpNs92ft2 dK7OB98N6QmS4syLprigMPLneaDNgToKe1W9dBxGPXMeo7WYhnTMU26iJzrRka/dUv9IR8Z5OM/C iOdRhR6QsPmecD1yXFxYVZTYyxDzzu+8VaoCPddT3BFpi5mopzPf7qX3QnlT3JaahHMNg6DPzb7P 9SK+JbUh4clDeTpWQZhoP4uTFS8N5cvwOHRJ3+qI95au0kwvUrNYntIUML5u/6+qSY/MsZukVdig YgGJPsjcdH6I2J9rL9k201QNQmxzzNraSZfaDyeh/6y69YvlPMwyGku6Rvt/LLBlPA/9lZyeLg3G hIFhouI7K3GWiUr5g5XyvYgWDaMgvA2D3JvPV7DJ5dzzYXk4t5dPSe+tgZvrslNhQPUMMaZMrLWn +dgIrauqx7iUjZsbylNspg4bKs1WUHAX97Lwli5EH2Xevdl3cd8FQFjD5w2SZOpoY7fcptME+jb0 dTHUTGUeMPPg7lyrFz3zXu+Fa1GZzXAaR1qEXteLsZeS2CyYMTz/CC9IxywvojwanUklHosN8G6v SN8vSWMgUdeKxiVc9BNNwITFYeiHrDAyMRSrZmMkxw0BeJx6mcAQoXcYavSTYRT37qQkQIAcAR9u npTKyu3fQXjVxGTaoet8rMvkZ1rYqMHZHgGvXLofB9oAhZ8nAIkMaxuECQjDhqcXl3vHx8PT9xXQ YuSFgtqlOjoiJAyecoJtOjTwBwNWxlo9Ncmh3Y71F7Rpq0QM4oRtzX5LqcF9lnh+JuZTxRUasIkB wwjEBhshcbnmM6sgmKWxpvxlIccaSvJnM2xBeX+5f/ARDKT5kmafiNsZXQA60iwJxzmjRxBrFpmF TLZ+iCTk8erOg2QL8xiTR5hr9qYJHZ+Omy9ZTgF0sE03GU5WstQ4jjGv/iknvAY2mEmEccQLnYUL zDcBxIkZitKzKSzinOChrUIS2G18o1MRwYXOaEGs6zSwxb+rzn0dpGEE3cRX/9ghOUZOg1b0BCjd i4zYi2zbffIxopaZ05iEjtnsKAK4B0e0Y9meYUxTiE1FMHvWMZkr8bsB/cDIMAotDjTjJa1ewUBW ZpoEM9M/b6yWpq0urajVoR6Hhd3CGBN6EreTsnJoSBvEitekhbAqy4uUJ5Qh6TImViGXjulZs6DU cBNgRgV3w2n4pmiWAooMGfTZR+84OPWSVYhB9Smh0fTaK/dEEAcxkAfsdrsqngc6cVx5x324TAq7 n7NVt+HEM1V3/GnFlNn+cShcyQcLhFsGHIvLoeMuvJXVW1CbOAysAKyHTjVoLNDHcZf+Ajh07QMJ l55/AyBhRvAcdxuzqeppUsLUY8Yp5A8wB8HKM1gTggtgJJYJggDeaZwR/xLdBRaxWtFGxLXNmH2G E4c2T0NoEoLgs4OTg+Ee4OO1Goegkj5mlDM+x3zz8Ia0jx8ISTCWzr4HwikECfujEbja8GTweY5m FIQWi+KoU0WxWZxmzFmSGKpTMGHoc0lyAQIBeFzbwXuRzjgGIKElE3j6tMUmWLhHzBXBAWG30HnG BgYAgfWpzhwiyTrBkSo0PZslcT6d1RwBKRX0FSTDxh1Q/lCAk4HECashwFj78aJCctv0GbD5lqRH DIsMWBSIt0W00HE+Yl4Pa0eBINJNRD7WEMquxVNmOgvvRsgH4JG9gY0e2g4JNswEMsAxd/AHXR3D DLO2CKMnSbzgzT+JSGwHO86IVOUuTLH9ZqJbbCPYNy2LPZEXtHIWRGU9l0PNoHl0MPGC9MTJ8GCg 9k4P1YfBD/ujvfPDi8+oiFWQqlZ6vCgQB7+zWXzf77d5ve9hWQmUxIR1EnMZh+HgbgHBPewSoLXM s94Cu3WZ00I4C4gitRJ9XsKAZxaiT4CdkWM2YRcmiZrlyKWI5CEEOGoK5djYzBlmHmg3kYN4sYSW BA62vBB3zCAo1o2TgK9jf5mgBQAVuKErbhtSFQWlKzKhC3ZyDamQXK+P9g4+7GZJri3+Pof6WLZA orvRq3EMCxK0MjgI5R8zr6BtFnsEEQgDt+249AxE57aVy9JzReKEsT7CRhPLRbVQ8wkrBppD8312 Rg9PDkk134l+K7qbNvFEyJqWZWgrNtFtQY/Or05PCWg+Di+PKCisgM9n8aaiUUJ4WcZyo2xAcACB 0DyD3/aToyrm4nmHDE9cFM54x8IwPockYSKWgl37GU73g/EN3hxxChQE6pA5FeonLJMUi2YzYH8w On03fH9tTqfEmTNDGpdqAr3Ui2W2Ino7i7wFQ0oPN8Ha0pOprGXDCL8l9o6PERxpurXHeiUkfh7H N5zXILY0o98I9FkrjeJBNofXg9O9/ePB7sQj2kzvgudeDg+uT0aHV8eD6+PhxeWu6+VBGCtzhYrU inIDXlanqzg/BGKsx4aDSp4lwVrdLQIgR4ji81tyq8zNnkIx3GSSwxXkzBorYAsm6i0Jli7OBvB1 x8P/GRzykoeD7wikLq7Ozkbnl1/SKFKqQ4N9MbAvErTiaNebh//U5Wb5CJnksdjbE18ihxUFjG+O ZcEM2KE46ZTuE+DN4D+OORAqQ4Ma/5AI3cGtesLEMAvFQLC4jPNhxtgrPNrEcMoLFmBhJA7yTA4u hdSTH0LAhdFhOsNC41Vt/5DcBcGeybMtNJlEmBKLLnM6SZlgIfuuB6aySTE6hh6jNCL/60vSLFUE E7XsiheAUAJZQo6gH9878RoEpAb7xCFR0G2mIbo4D8c9A9m9TzlbTif5ZN/qSkTrEIsffL93cnY8 2Fbqo7VQiUctbC8I6Y6Gh4UfbP4Y41ZC/wb8BBOQDDVnXzK/ZVQk94vkQy2fc2hkQ2hRmKkCOenI 5KTq0HSTnCIJPk9NnBKI/y1iHc1sgNBdb6tHMuqJtE/3Tgacx2GW3n14YGJR7BqFQQlok5GcHe4Z yhtOZwVo0tNensWLAuqFb4RAQqyNS/BV4OlFHNUOTbpBscaC4uiC7cnlCZZRvE2b3t/f7x0eHgrZ arWt2zZn/i214DW8JYxx6sHEHmoH9MJM5NbVwDX5L/O2Im1xBa84G4JLgsEg+PTkeqy2yiU1KQ9L 2cwWkzAh6/ZmIPJGXeacvGTipInCxpGhHOfAwZOzl8RFViQfggFOJePpIJyGCDMgioVOvCIFLFY7 PYMM4s0dSmJyrO4yd9SU7vU1Pc7pX4QbEVPwVCPyCcmlkCtjWcKeOMkDHZwgYOGYzziktAz2SPwe 9PuucGuMAkZoFBI9wq12JSPksECZ0oJZ1dXIkjKjFE8gBQWwpEdASOdBZGYTaWx0RcKnQOYKFaIT kD6IrTlP6RClMAhaoD9xElACgVIWEn0VXpZS1rhKSWnBVeOyVmoMEnnDlC4lJw6itahmNeP0UY7Q YTUHbtz7eik5ZVKHWLwDrASeIUyggDQpzr+H37SX4kykYiudPXOc37H+Y873O874+EX1vzevXn2m /rexufXq5YP6X39z48/63x/yWnvWo/werGvmrDlrglQ2T0s+tV4/KSt7HAyzl3x/etWTKoJNNK8Z GJZ3pQTxF8WGvNV9USlAjLg62H0BBkyhK4cYDHU+dvNULW5HCopb9AhodxBTrNorciOAz8eJg645 WEHCLfuuU1WBvlqwaZK3QvSoZId5GNAiKqoRhpWDpFrhZUWNkCbiVGgZI8Gkb6hck6wwkaQAxDPy FvHeEbj16PyHbf5jY6vzrRd1Njc2+o13DAnuqb4rKlXAwFkI8GPJ1YpNa41Gla4WwS8XXGgpxw/q OeNugXOTPOL0ZupgB4eD/av3uyvMqu+Zo/EbjsOpUned/3LVs13lukWKlJzkQqdT5XrJNBc0bK6/ aFGFUjU/4eenlutQSpTOOKLNE/4l+qc8pBSNfQpQyyGVylZLLT/GmjQBYM1pf3Kza2pw7y2WANRt ymyO22rph21wH28ZgRJAF/CH1rr/8j+3KN3OStGmKW7anPjBJvgw62uqM89UX3Vitd5Xu2qm58vi j+edDv39vHZIyRdnZW4YbDlW7lUKOW+r9Q31M22I9kPbwGK/0oquHTcoC7ZUBoeTz5gBUAGVIko6 cVFjw2Nr6t3w+xN4IFD3jNNrpkhpC2nNenWxy2+3eKtcAGnIrUB9oSlzSIsClvUXriMFNxl4D6/X 59vZez84vdytzbnel0nl6g6Nyplr4jQll5PXqNJZg413oxHOjptNIfLd3b/VPTA+lXmLMfZWOvdq nfdRE3w6CyeZ2a727Qh3/b/divL5BFRkfpUx7sMzytCIo0m2YjsZx3Emy+065on/a6j+Kq9Hdv8V 1vhy/88G3P/rB/7/5Wb/T///h7yM/zfe/4IDUfJ2xKcpXij0gpkqJ6CjBx6FHMpnfcXZ3uXRLi2x zZCwDb6dVH7DL47zYXB+OjjeLSN2x8YCw/PdWlC/LkOL2oSMqFU/6Ri01SD0plFMEXtawElGiP6M i3xm8d48nk5B+B95r2ZL/Wyh2iLLr462KbHKmIdTYRWAf+Uh6+uIgdgY9AWFG4B9pklcCtvfuzhS TTfQ/px8QCd0W1K8p4SMcfmYBJRs7+OHNrkHQyp47al3dwM+dVLnY1yajVPJxGTUudPGFJQW5Vmr JCGmCKY5mcfL5UqiOZPaoKRFROW/NQcL734S0kHrqc2/cf4dEeb8k+UEGOOqR4Sg8uSjB0k8LJ9T SgrbGFp1OhQtclHDlcJfZPMINvqkiNdUxxYIxjCFSdZAEleR7b0qk2QSd1P6A5Bf1Dcg7GUC0VDj 1Jras4vSozMqxUH1cbaIg7RJJZKUR6kOQezV1xwPxhPMwZWAqYZPpk91sKPu4OmnVKDiatAa6ffZ +Wh/sOuKo7SndkkUv8OL5ZkLEyE5XBvBMY2iAJQtLdCSzWDNwgN2F2ldzk1KypAqlqVnDDZ1dC6p 0KiCq9SyWcK9szLPIqrvKmlLk7w0vO00BwUCOZO6EBxumuHJytahnC3nZ1amw/MhdYvtShYSeiOB OYXZplzzuG2Dt5AlAHusQGn1HWZZbTNFJSPuZabPhQN3Tit0NrpvXNqlFFxhpZ0ODkF7d1t2F6SM d5oRstwJ81Hz+1seSNnzwbk1hvW+3XLNJAp6eb8u44lj35dM06c2GTBTgGcDi7WkL2FNQgEJzvA4 dsOGb3M8dhQZU6K9IJUckdWCODFJIbYIj/o5SXAg7PKg2ZDJpNf20zCnkoHCNhv2mj7ZMxRCU+ub +MPkPs2En+TZSah2dpyS7Cq3FGDlmYvj0eU1pTld9fat4zRetAy75eJNbJSzIt63b11ZoNipTj3f Ul9zhYgmQfQ4MccpwHRGhXZT9XniUmoyWO9f43jXdsH/wiFr09uYSaTyACMbCWwmiZ584KkgS057 YrGS/QRbnZ2fXeD6ywcHBJaPH4CoKHXRqGo6Czksxt/yPKYSh0z6YFfgj4KY+2aeqXlK/UK/qGmi l8r933UzHkIv+2Z44LqFPmXGyGdGj+QSSUGlbstlI4P2ZrxrlezJfp31fs+uXWrnFyXZKNz5iaxj BGlmMXJsUBNPo/GZtazucquPyCXSzq+/a6LuK72kovZ11/hy/q+/+epx//+bzVd/8v8/4lXn/1Lz bnASkFvy0qJoW7TKVjv0VOpN9HwlXn59GGwr0af2rep3+4pSVz36bwu/bm++2X71SpEc6X9qcA8r 4wf3qQfU1rtuQ+/J/jdKH1KO6NYDe6Haq+1LwQSuFC86nlsWWRDSUwtC5aM0ZtrPTeS2nNltyQ5y qs5F4Eucj6HTe6nh13nEDT7CTDDrXN/quWkWSKn6Q3LjEZw2XM5W/CR+X8YICVZt049H8LqM0zQc l7UPLqYwJU8pBmhyu6TJZrakoGB7LVJpPfFoLG3QrsNkzBBYbnA0fLeaoiyPi7H4j9q3Aw1uGlCJ z3ZKNsMTzwdl2dNJbBqHY1CKVtlbZxOZmIJTmdX2k6KOaxu6bba1KU2s1FVydXQw7I3wg8KQWUht atR90rZ9BNLyazrRbLdIy/SB2zo/RJLGLDXxEWNKHi7iWymMeb7PlTtqApDYU4LNz8WeT/Q2iICK PgjuvXnUkSPdERSQwZcm0nixKgOEiZfPM1MifGuiz8lTjRnVKKn7xADjuXV32n3cncGh3OMTsBFw VddEKhJjnYyuLgZm3MVu0Y0jd+DSWYYRV3UL4txJtFS0iPXWsuVt9f27ROu/vlYvuy+7r+13Hije ofT/g76sHbrCYj26Y/5MLYhljbWS3ir8NiFCCllLiTntmuTsQ+mDPNGt1IT3VJPKeu3IoI2Pxkgm mnnRNa95TZdShBpr6pgYyBGF1Qdl86It6DePDg5hp8RXuI3iQX2TQ9PUhhjGypheXlPjxzXbA4uD bKJq62V9E8iy4q8tRGYerp0TNMh3cJrzFAxZdW5/YerFAMJxe8bVkTTumuc6xL8qXYvynFT6qdPQ SwlP2eqB6Un5mGcMXx0dSO7Zt/F0WZHGXlTTm4ce5U2LJAdpzFvqrjd0HgQeUO1FOVW1q9pEtdGU W1bUomy7L6df6UwobJkd+Ik8TSee4Qxl5IQo6j/6lus+GJo/MVT98kt93Oem+61Bjyb6zIIVZt8J 6m0QJSPFx3yXmMf9e0P9ozaM3jDN5hNq5KkSbHF1teGIczgaKz/uZEVAKEmNB+PJHhpr5GruiAtz 3sh8zyuKjaNq02fuxKOeQpd7lhsSAEtfOVk7fymJg9DnHE4mWchGgSVNO2vXaRyMrk4vdz9Bjeui +EXd+aqDQFio+zqPwxtabdZb8fMnj0yfJAsKSPAneZ5H1yBDOOZS/bJBf412TO4KtlxrvWW7gBby ITk9BBZkkwd30s4rbe8ilMJ8KbiSFJ+JwYvY5csbLGOiYpf1UM7Ex5iouE3OmuBuuNuCvzRDX8eZ af+Gkl50jVUIKdpvTk9PeycnJ8ZXFN+htIVJeWRYphPcMr3htrmpYabT8J/ll3K4HkQtJPLoRbWR ltSoWhBl4G9TL9TMWxJz8z3TwraisWYKk3ehbhM/AwPMdOUrHsXGgRzme3QPItbHsF8Er4XR2kiu iN7Kyw3CQIq2kiG60wYBAftORY82KOCzniRePnQkvnwZB5q1ADUIl9Q9Ey50ar8aM/P4gBldHlNr atrFRqi0J7TiX+1dbXPbNhK+r9avYGSlSTqyQ70rznk6TuJMfc05OcfpXafTcSkRslnLpIeULOea /vfD7gIgQFK2mReDuhEnE1MkQD7Ey2KxeHYhHmQq4yMaZ5C4jA0zAf0c/EEAsuJRbaK/Ktzn5cib rjNlkpKsFCuuXLNkDKTzGBqLqkA/SCRVDL5BG6awLLywKbicOhFQ5IUBkvgsTdIB+PghDXox8+dj 6XIGtT6GziyqUHUPkvFKoC6Xqpvk2oIDCDpvgeX6nLHLtIfwJk+8Sw/WznkNQJeGahQPePtTU/VI ciTg7W0utWipZcIUIEmEXCQTMfEFZGuNsI7kZ8o2jqsqEgmNcMIviWv2vDoe4RLLWD4F38YHSl73 yhCuUa8SqS3N4o+C9mxIFK0Qt7xEmUq5mKJXLZRDAjk6gC+ZcqUSlHxpH4KGxOcwMXjniQdRpQnL TFp3TcWCqMt310VJzkPJAb4Q5U0p/og+glIomcQLj7d7Z3GBRVEoFinb+DLwsIvBieOP29fXThxE Pdd1LvzxkP9JeMsMOfLlz/DGF4KLHIwuxh6f2SbJoO1KngDMUG7IzRXbOJqxc8dPRnGLv5BdwQdc slMv4VM0Lgo5uuXZoUXz9hrgUjw/nUUxLMiHbNZyhy5c46fOubfgkru4wdNzCqTbsv4RnTe5kAY2 BdRQ2lukAynNgGNwAI4S9JaBSp74oksWDbY3IVs2tpWXrM9BtMLqJLHzF+BSHjPFb0VzeL3Rqjvo so16/BMu202tXhA4HTAwQ6LoUktD8jqbxJvxabhYBaTFSeE4t+M4crUyuYh/F0kePapJN8JJZpCV S0aG9nK7+qO0RakCnc50FUgqUOz6MlZJnDbPKMko6FD5HG0G2ENBs6GEdZ5IWGt/PX73/uC3nXox ZsOorx67RXIsVezgNUpBrKcWUcysSkf9QmhyHvUGReSOyDX2ZlkkYkzRlNksEP5dvEKUnaOuyg4d jFV9SKH23XfORCrZsp0aKQyzdIpYSLxAivXtenHx4OAzYlnyV5rBKJo6V6/Oz+YjHx4MXBT0S5Gx NBaJ1EmN74MnLGt2eTcRs+XRW/GVKsHsDBaFoBKypUzQ0vvwZq6sbU15Sz0DV82tFl3YgysMy/UR ZnoklwS2rvCvjhiXDPQLUjGVfYVPKn9AbVN3U8J1SBh6Exq4N7Crxkx2+k1pihBLQGASGiXRdD5j uO7XxKpy0DTUgP93ahsNF8UBNAo8RaddfC6wvj59/0TJBYPiBV31T0yBWT7BMz6R0PgkAP1VT7MS iQiXnWwbfbUD7LVI4/iG77jF/t/vDLL2/1a33V7b/+/jyPJ/9cgeaZgFLWLHdkoTFnZhQcGQNF/h yrT9vZMJudBE9izXZjy04fLJKoY/AeojMnZRMfdxuiymdLjMgLKfZ1WoZhBh4kJyWTel+7b2NiJU agFhNjf4v72XxwdvD3cfJs6v4BMQxUKj/43fe3fE1aeXx7sPr5/iP37p4PB4/+j13sv93Yf+U/zH Lx7/8k7/DYQRsGZOdM1eczhuIssA6bwbr/Z/fv1+1zRV4NUD/gpzvHvodnz8D99wYD5dTBqACG3k asqldIqSgwvtyDIgSznNYGiSecpmGpHlkbL4ZhjRKTNgW5B1lRXT5HdrpO4mGQZjwxstBisjEUzI T+Mx5nki3XVZCDmE85jO+kZmFDxhioQQmAwpjoeKQqBiIEnfLS1YCfnFh0x4VSFvhUJ4ODh9k6S2 KDQMtGC6KfBHgVYo/buKCNu9lLD9r3kwPuddY0ztWsVaAR8zaNZmjBLI3EkzH4QBaFU6D78eAvXb IN41RS1MGPNH/EXA+5aRgWRAjoTcwfd8Prs54m0B6c9HH3nB/MyTsvhF8Me0CRkPo3jE4pnzLmYB qR+vpxGfnYRcOTuLJpOm88q74ur6izhahBh/IIT+sEFjMVRkJGPyUJnzOg9C/g0qhgMJkW3nsT+C RbcvXhQRXAxtUQQIGbQuknKyYdR1pe0MzGdFVPflTPdN3lf4JNITbley1ii6l+w1UIUygFhS++fe u5OXH46OgD7dSImMOS9EtFeg7NByYAcPEqjX5/gOkKrms1/xJsf/7jY0DqTuxcSfvCEoUUj541PK a97dF5GIToSLLmjJY9d81g+reRvQQ4TvUlO6IqVeSM6DBzXBKBPdbbnTJ+irYIEKQkd+Ek8vMMMI oLOyYA1I0btS/0rnw7v30rNSWE0cMT9+DuQ5Xgg/7h2+KiwE4SWq4RXOwtR6lA+36PjmDJiDQL+6 pvSvA8DCqoDLLQIUhoxIw5TwiSD0Q1EoivoFoQT42AbNK/Pyx8T+gpqAMoMlxKl3aUQFEU8hEcln 4/iQNJCKkvWXLMb2gtFXOLhtUUAf3u8fFRaQ8JcEoiEsls4v5rR0jUs7mnxdkAFtjA4JEDmulvLu RNcTgybyoIBZe92gIdYgRkHXQ3rNC15YOI/hijk5MGfp+FBl+57w50u7iuQKYlPkMzU+UlxGITnp QMMF71Dk+Hk8f4HUfgyDI6+yJw6Ra2lwg/SysKFjKL0mPIdiAG9FNIN7Mw/osPzF0/mFCF3F2zeu cccMeI0Ygwq0kwS8NMBILeNRZSqTMmsxD+VMB2TJFBh3CY1xdF04qGrP17yHwRgXhRji4TSKfPgE LtuBsrWZ+m03U66vIH2hsfvxEyfmFYpOizIUh3gyz80gslT6PCiXlJQMffEk8H9moY8dCH68i/nn jXFZ6WQ09sl5PptnRJdfwmfqF97PR7lr/IGziJd37hkH0qdLy6KumU9Sl9XDanAdHeHj2cmVpzNK l3KXBSGNiAaTAIJiLM4f1MW4Yq7JTCNgffwHOgUF8YCz3d9xyqi6yicH3uJsvX7qPPoT7YxO3b2u O41WU5y05UnH+evR78IM5vl3Lnjn73939t8e1xqEBE714RIUWJNNCjcPQDNN3/M5laXeC2/A16Z2 kU2IBrgVTbZilF1X3nQOFpbsq3b5PNE1LssX5u/I19IdvR7Ehyr1/fav/ZJmpT5bva/Et5sv1j8y 9/rCm4WF8FdN7zdc4p7sHf5SE393XRKzyYzPs0DZyHrFSy9lIBML+2sTl31QDKlYpjhAwMjgi4U5 RQvdxH6mU2H1RTDqfjLYzAkJOt6UOXA2JZGOYbLQFQ4HIZqzAKNe62XSDHcaRnyWRYt26Tcj1JPJ 1DtNsrdUD0p7j+o5J9NI+3EWZPMavSLbI7KiK5s308YK2leRyKJSI/IEKB3p2DGVC1lC4Wmmvufo oapWoyhOI1WSjKoLVCUYTR8o8jrlpSEWNAFea0JRe1JUUUKxUcJJVoR4HASagbBcDAZzMzsO1uqt fP4mVhWxznBalzYlTEYLdfgWUeta9Zaqz1IV+Hk1ZrbIqLaxQwvwNIY36AN0ejtYpxMKXZHMZGfV XFZkmFPgCH7MpB4FM6LbaM2d2P3BhIJS4BIl2UzDKPwvi6MaQFKF1kjP9OFF0i7U3S3eKhoS3JaX vWMMTYadGaaiQThnZDOWrhrCpQmSJ+kKK0zDASLpXZeiNmEltwlZExklVtdkUj0GZzWktMgFbPpU 2Swa2qkxfKZfK+8XfK5xyxx9l38wAEjHZZL/DaNFNozGSkVBz08VKQHPSAnrQGaym8o9+wD+4twn mnen7O6Px6/Ue1bD/JUd5RUePVUeT+5uTjG54Yt3ct27kbtQoGZkoKm0y9CZCYoUpbtgVMKjkbtQ pBSbGFXaZRjNBEWK201Vq7yrYLAJo0WTKCzoaISSLdFsBXzmIog82GFhZZc35zQQAz4E84sJDrWd jKBt5C4U6EqqFDJp86VQlKBI67u5pvLCv1F0rVh3y4O9oWUtSbNEKb0jaq2JFVxbMmHKob6hrS1J s0RnvrnFHUDoKXQshIHtQU15ktUb0hVIelHBV0rbTcYxiRxwSNv9N9iniBArAvIFibFegJS1H3ha 8qwTZgzgh3MFl5b/srNH0k5ev/1w+EoLlfdm78X+m11cAZYjmJz71RUNAyOYpKGMlCn4go/rMxjb dYugyATDOkzmxX4KKrOMXPocx09pHzw6eKExTfnwrpsY9anQhuFiCYY2I2m9gR9UT2mL6ePEe+7y OJnUeJxwlcr6xWXcs6iAkYOvT/JAebwUQbSEG3PWOVhfykjypSEsiHeBL5Mq+Bu3gE5bBgKXXmEp eDLJCOuPcNJk8ZZpiwwj035E1hz6rifpBzXwTc6uQ6Zv3h3lJwobYIpLuR3v3PS5MtvX+twilBkD C7Ru8MkWUNDpTr4cTS2mLyW4iIpVecwP3U12WopGArGyFH9ctzPK7FVbh7d1aAsH3+wdN8f/6Ldb nVZ2/X/Qa63X/+/j2MR+L2SmPKo8wyYZcQIb29QCYomah3vNG1WHTrp9ny6N28OWft/Vfhg5s0/6 0t901BRddRnSXq+jLrVtIgVSbO6A+wPXgJQDd2ek7czvz0aK1N080tbwayEt+7uVvS+QjqZzNosg 1m/m/tcqU3YbkhyyJUh9b5RtpZl22h3QJZDan4H0q7XTuyN9xg+rSJGcfgPSruuJS632vbTTr4G0 szpI7bbTMkitSv4ySO9Hnn4NpK3VQboy7bRV6XY6oRN+1resS0nPoGVI3e6oS5dalpGCq1PugPvW dKnOEqTCVSuP1J3QSa/bo0tDAq/uawXcNnJ+IdJlZfq5SDvU0eiHp+fMlclXQio85gqQqtnJhC55 w/up/aVIpdPdMqRdmg9iMVYbac+X8tR91l0ZpFY16VJIPSN/hZF6K9NOvY6Rv7JIh6uEdGwTqXQ3 XoZU3gTM7Z4lpO2+79aiq17LsGJkkLo975lEaleTvjtSr+pIh62KWCWlV/1ypB3Ro1put19ppAOv T5eGlmv/7kjdZ8Nql+nQ91cQ6WBlkA5XA+kK9CilS7lWdf7bkIIbIl3qum6ly9RAWukxykBqVT+9 O1JvNK507buD0XDVkFa9nbrd0UhcelZtKeX2+sLaU/ky7fdFmbbbK4S00lLKQFrtdqojrbZ+2m21 1KWKy1NXrO+7bQNc5ZC2ekxI/meW101lYLss0o61VZ5B9v4a6TdDKgMiZpGmfd8T61FcSFltp2WQ dlcGadvquH8r0v7IV5esSv5SSFekTHmPWpUytTxG3d6jemI0bVe9nXYmUvK3XVtrJ2WRtlamTFsr VKbVllIp0u7K1P5gZZC2VwZpv+JI+x0h+d123+qKxK1IK8OYKYXUqg2lDFK7jJlSZWqVhVSqTK3a +u6O1Da3pxRSq9ye25FKVqdbdU2664oxqmWCqx5SvUyrrfXpSCveozSkVq3nt7fTvrSeW2Yfl0E6 XBmkVZdSWpmuDNKKSym9TFcGacXlqV6mK4O06nb+FGnV1060Ml0ZKVVx63lXcnsqbz/VkVa872tI q22Z0JFWXD/VkFplH9+GtNV3JffctevBXQap3ZgIJZC2q43U7XqK29OuuDxNkdrlnpdBajciRgmk nZUp087KtNOO3dofsel5EJ4kXu6+tPa4KRPBqoZyO9L+mC4NXbuj6R2Q9tQlu1FGgtPgxBuP2ZR2 is8jHadI7cbuKIPUqn7KLi7ZqZM5dKTDbkXs/JOZH5wkmaBthpSSkVuGnYHV2r870r7lMj1nH5NL LzSAGkj741SeWmXMlEJqVfKXQmp1xlcK6eq0U6t9vxRSq+yOMkjtxuwqVaZWdalSSK2ykEohnawK UrvWnlJlapXbI5CeXPpe5n5FR9O7IbWqSUcXYRCymePk7kudfygsaLZ5KFdBEmVm+ybSYbsifP7F WTBjZ8yb5e5LPz7q8TiLtqqh3B2paxnpPBmNozgT+BzuW/M5e5a9r5Amg7aR2DHLtDsQHtwt62V6 C9JeT0a+rjrSQVvEl2q1h1bl6cIbR7lo8kaZ9hX/1O64XwapzRjdrXJILbbTdjmkFmcnnXJILepS 3XJILfb93npvndU4YP8fsYXsN3vHzfv/uK2+m9//p9X523r/n3s4Vnr/Hz6zHPnsKicNgdKshN63 UIc7md+3brci1IyLaJ6wLOIqAM7tySMA/xF9zBWwHG9cub8SbK+kgrHc04RjmSJ3G+Aek7+HaU6b gC33f5D/sPegRfnvtge9nPzv99by/z6OlZb/tgvv/+AI2WzbO2Xh7Bu+A/r/oNdbqv+1B51s/++6 /XX/v49j88HTURA+HXnJGW6VfMhmiyg+VzsjX0bTYPzRwSaC+7K+CcL5NW5gTJvTJpjtJ9qo9nD/ OM3pxd4Flx/heDr32U5tc4P/o01adx8mzq8xOw0SiJzFHzoP5a/feKKDw+P9o9d7L/d5Onz6jwfv j98e/bKDP9zu1j+8cAuscBsHYTCDrX9h19ggCmEH8nrIFnUFAnFv83w13IX2uqGe7ew618bmv7iT 7AvPx48IwqtojFsH65vHwv6z2R2iJfAncm9fsWF6KArS2IfYidk0YLB/uuP5F0GIOZnv8DY4Y03x gAWjLZ1hu+qL+fjMOeNpcKvjaM4v8jxxtIWbHk+CsXMeRosp80+Z3FoYcniJszhj/NPip2fRAra+ hg86Z86rH1++azoJmznzS2cUB/5pEJ42HTYbb2ub9W5dO08TaBbBhCdTe/WyazbWb6SFqW/ojOXY aBVsyAvzzKnYjje7hW9hhqIdfNe7966P9bE+1sf6WB/rY32sj/WxPtbH+lgf62N9lDr+B07r0QcA 8AAA ------=_NextPart_000_03C7_01C07978.B86A8940-- _______________________________________________ Linux-hotplug-devel mailing list Linux-hotplug-devel@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel