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                          phhargr...@lbl.gov
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to