From mboxrd@z Thu Jan 1 00:00:00 1970 From: MALET JL Date: Tue, 23 Dec 2003 16:38:13 +0000 Subject: Re: pci.rc : coldplug fix Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linux-hotplug@vger.kernel.org MALET JL a =C3=A9crit : > hello, > this is the first time I write here :) > I discovered hotplog recently because devfs is no longer a "standard" > the first thing I tried is coldplug and..... nothing worked..... I=20 > looked into the sources and find the problem in pci.rc > the pci.rc snapshot included here solve this issue and now coldplug=20 > work on my pc. > It has the advantage of using only /proc and awk to generate the=20 > pciID/vendorID > best regards > >------------------------------------------------------------------------ > >[....] > >pci_boot_events () >{ > # > # FIXME on 2.5, /sys/bus/pci/devices gives some of this > # information, and more can be gotten with 'lspci'. > # don't expect pcimodules to exist!! > # > LISTER=3D`type -p pcimodules` > if [ "$LISTER" =3D "" -o ! -f /proc/bus/pci/devices -o ! -x pci.agent = ]; then > echo $"** can't synthesize pci hotplug events" > return > fi > > # make sure the pci agent will run > export ACTION=ADd > export PCI_CLASS=3D0 > export PCI_ID=3D0:0 > export PCI_SLOT=3D0:0.0 > export PCI_SUBSYS_ID=3D0:0 > > # these notifications will be handled by pcimodules > gawk -F' ' '{printf("%s:%s\n",toupper(substr($2,0,4)), toupper(substr(= $2,5,4)) )}' /proc/bus/pci/devices | > while read PCI_ID; do > /sbin/hotplug pci > done >} > >[....] > =20 > now I see another modification that can reduce the code : pci_boot_events () { # make sure the pci agent will run export ACTION=ADd export PCI_CLASS=3D0 export PCI_ID=3D0:0 export PCI_SLOT=3D0:0.0 export PCI_SUBSYS_ID=3D0:0 # these notifications will be handled by pcimodules gawk -F' ' '{printf("%s:%s\n",toupper(substr($2,0,4)), toupper(substr($= 2,5,4)) )}' /proc/bus/pci/devices | while read PCI_ID; do /sbin/hotplug pci done } notice the fact that =20 1) sysfs isn't needed : use of /proc/bus/* 2) lspci isn't needed too : same information can be gathered in /proc/bus/p= ci/devices 3) pcimodules is furthermore not required ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id371&op=CCk _______________________________________________ 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