[Pkg-pciutils-discuss] Bug#335665: kudzu patch to not use
PCI_FILL_CLASS
Martin Mares
mj at ucw.cz
Tue Jun 27 13:24:23 UTC 2006
Hello!
> Aha. That makes sense; I suspect most PCI devices don't allow the OS to
> write that field ;-) I didn't like the 'read it byte-by-byte' part of
> the patch, so I changed it to pci_get_word().
>
> Martin, now that we have a reason, what do you think to this patch?
Applied :)
(Available in the GIT repository and also as a -pre2.)
> --- pciutils-2.2.1/lib/generic.c.devicetype 2004-08-13 16:15:23.000000000 -0400
> +++ pciutils-2.2.1/lib/generic.c 2005-12-13 17:02:12.000000000 -0500
> @@ -46,7 +46,8 @@
> d->func = t->func;
> d->vendor_id = vd & 0xffff;
> d->device_id = vd >> 16U;
> - d->known_fields = PCI_FILL_IDENT;
> + d->device_class = pci_read_word(t, PCI_CLASS_DEVICE);
> + d->known_fields = PCI_FILL_IDENT | PCI_FILL_CLASS;
Except for this bit -- why should we read it if nobody requested?
> --- pciutils-2.2.1/lib/example.c.devicetype 2000-03-09 03:38:33.000000000 -0500
> +++ pciutils-2.2.1/lib/example.c 2005-12-13 17:02:12.000000000 -0500
> @@ -21,7 +21,7 @@
> pci_scan_bus(pacc); /* We want to get the list of devices */
> for(dev=pacc->devices; dev; dev=dev->next) /* Iterate over all devices */
> {
> - pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES); /* Fill in header info we need */
> + pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_CLASS); /* Fill in header info we need */
> c = pci_read_word(dev, PCI_CLASS_DEVICE); /* Read config register directly */
This doesn't make much sense, I've tried to come with a better example.
Have a nice fortnight
--
Martin `MJ' Mares <mj at ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
IBM = Inside Black Magic
More information about the Pkg-pciutils-discuss
mailing list