On 12/14/2011 12:45 PM, Paul H. Hargrove wrote:
Here is a portion of proc_bus_pci_read() from my /usr/src/linux-2.4.21-60.EL/drivers/pci/proc.c:/* * Normal users can read only the standardized portion of the* configuration space as several chips lock up when trying to read * undefined locations (think of Intel PIIX4 as a typical example).*/ if (capable(CAP_SYS_ADMIN)) size = PCI_CFG_SPACE_SIZE; else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) size = 128; else size = 64;I find that this exact code is still present in linux-2.6.39. So, the kernel behavior has not changed in this respect and I suspect therefore that more recent libpci is simply masking the short read.
Now that I think of it, this situation seems to imply that running the code in topology-libpci.c as root on a system w/ a Intel PIIX4 controller could lock-up ones machine. Thoughts?
-Paul -- Paul H. Hargrove [email protected] Future Technologies Group HPC Research Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
