Your message dated Mon, 16 Jul 2007 18:49:37 +0200
with message-id <[EMAIL PROTECTED]>
and subject line Removed
has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--- Begin Message ---
Package: hotplug
Version: 0.0.20040329-25
Severity: wishlist
Tags: patch
Attached is a patch for '/etc/hotplug/isapnp.rc'. To make the code line
up better I put in about a dozen indentations, that may make it seem
very busy, but it's simpler than it looks. Here's a diff without any
cosmetic whitespace, only three lines changed:
% diff -w /etc/hotplug/isapnp.rc /tmp/isapnp.rc
28,29c28,29
< cat /sys/bus/pnp/devices/*/id \
< | while read PNPID; do
---
> for PNPDEVFILE in /sys/bus/pnp/devices/*/id ; do # loop
through PNP device names
> while read PNPID; do
54a55
> done < $PNPDEVFILE # like "cat FOO* | while read BAR", but
faster
Note: the variable name $PNPDEVFILE is arbitrary, and can safely be
renamed to something more appropriate.
How it works; the old loop did it this way:
% cat /sys/bus/pnp/devices/*/id | while read F ; do echo $F ; done
PNP0c01
PNP0c02
{ ...etc...}
PNP0303
...the 'for ... | while' version does this:
% for f in /sys/bus/pnp/devices/*/id ; do while read F ; do echo $F ; done
< $f ; done
PNP0c01
PNP0c02
{ ...etc...}
PNP0303
The code's a little longer, but 4x faster because it stays in the shell --
on my system anyway. A quick benchmark:
% N=`seq 10000` # run it 10,000 times
% time for n in $N ; do cat /sys/bus/pnp/devices/*/id | while read F ;
do : ; done ; done
real 1m4.128s
user 0m18.254s
sys 0m43.230s
% time for n in $N ; do for f in /sys/bus/pnp/devices/*/id ; do while
read F ; do : ; done < $f ; done done
real 0m22.051s
user 0m14.614s
sys 0m6.989s
Hope this helps...
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/dash
Kernel: Linux 2.6.11-1-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Versions of packages hotplug depends on:
ii bash 3.0-15 The GNU Bourne Again SHell
ii debconf [debconf-2.0] 1.4.54 Debian configuration management sy
ii grep 2.5.1.ds1-5 GNU grep, egrep and fgrep
ii module-init-tools 3.2-pre1-2 tools for managing Linux kernel mo
ii modutils 2.4.27.0-3 Linux module utilities
ii procps 1:3.2.5-1 /proc file system utilities
ii sed 4.1.4-2 The GNU sed stream editor
Versions of packages hotplug recommends:
ii ifupdown 0.6.7 high level tools to configure netw
ii pciutils 1:2.1.11-15 Linux PCI Utilities
ii usbutils 0.71-5 USB console utilities
-- debconf information:
hotplug/ignore_pci_class_display: true
hotplug/net_agent_policy: hotplug
hotplug/static_module_list:
* hotplug/usb_keyboard:
hotplug/x11_usbmice_hack: false
--- /etc/hotplug/isapnp.rc 2005-07-11 13:59:14.000000000 -0400
+++ /tmp/isapnp.rc 2005-08-05 06:39:56.000000000 -0400
@@ -25,33 +25,34 @@
return 0
fi
- cat /sys/bus/pnp/devices/*/id \
- | while read PNPID; do
- # get the name of the module which should be loaded
- MODULE=$(modprobe --show-depends -q pnp:d$PNPID \
+ for PNPDEVFILE in /sys/bus/pnp/devices/*/id ; do # loop through
PNP device names
+ while read PNPID; do
+ # get the name of the module which should be loaded
+ MODULE=$(modprobe --show-depends -q pnp:d$PNPID \
| sed -e '$!d;s/.*\/\(.*\)\.ko .*/\1/')
- case "$MODULE" in
- "") # continue if there is no alias available
- continue
- ;;
- install*) # skip the blacklist check if install is used
- MODULE="pnp:d$PNPID"
- ;;
- *) # ignore blacklisted devices
- if is_blacklisted $MODULE; then
- mesg " $MODULE: blacklisted"
- continue
- fi
- ;;
- esac
+ case "$MODULE" in
+ "") # continue if there is no alias available
+ continue
+ ;;
+ install*) # skip the blacklist check if install is used
+ MODULE="pnp:d$PNPID"
+ ;;
+ *) # ignore blacklisted devices
+ if is_blacklisted $MODULE; then
+ mesg " $MODULE: blacklisted"
+ continue
+ fi
+ ;;
+ esac
- # see do_pnp_entry() in /usr/src/linux/scripts/file2alias.c
- if $MODPROBE -q $MODULE; then
- mesg " $MODULE: loaded successfully"
- else
- mesg " $MODULE: can't be loaded"
- fi
+ # see do_pnp_entry() in /usr/src/linux/scripts/file2alias.c
+ if $MODPROBE -q $MODULE; then
+ mesg " $MODULE: loaded successfully"
+ else
+ mesg " $MODULE: can't be loaded"
+ fi
+ done < $PNPDEVFILE # like "cat FOO* | while read BAR", but faster
done
}
--- End Message ---
--- Begin Message ---
This package has been removed from Debian unstable. I'm therefore
closing this bug report. The package has been removed because it
has been superseded by udev. It's quite unlikely that your bug still
exists in udev, but if it does, please let me know.
--
Martin Michlmayr
http://www.cyrius.com/
--- End Message ---