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 ---

Reply via email to