pci_read_config8 > 100 bytes crashes pci-bios

The title kind of says it all. I tried to read the entire 255 byte
pci config space for a device in a single call to pci_read_config8,
and pci-bios crashed. Reading in segments of 20 bytes works fine.

Released Patch A.

Cheers,
Andrew

The pci_read_config() documents I saw said you must read < 100 bytes at
a time. See the Returns section of pci_read_config8(), where it returns
the PCI_BUFFER_TOO_SMALL error. That return means count is > 100 bytes.

I tried this some time ago, and it failed, but did not crask, in the old
QRTP version. I’ll try again.

Andrew Thomas wrote:

The title kind of says it all. I tried to read the entire 255 byte
pci config space for a device in a single call to pci_read_config8,
and pci-bios crashed. Reading in segments of 20 bytes works fine.

Released Patch A.

Cheers,
Andrew

John H. Zouck
The Johns Hopkins University
Applied Physics Laboratory

Previously, John H. Zouck wrote in qdn.public.qnxrtp.os:

The pci_read_config() documents I saw said you must read < 100 bytes
at a time. See the Returns section of pci_read_config8(), where it
returns the PCI_BUFFER_TOO_SMALL error. That return means count is
100 bytes.

Yes, I saw that. I was just surprised that pci-bios crashes instead
of returning PCI_BUFFER_TOO_SMALL.

Regards,
Andrew

Hi Andrew,

This has been fixed in the latest pci-bios, which may or may not make
it into the next release.



Andrew Thomas <Andrew@cogent.ca> wrote:

The title kind of says it all. I tried to read the entire 255 byte
pci config space for a device in a single call to pci_read_config8,
and pci-bios crashed. Reading in segments of 20 bytes works fine.

Released Patch A.

Cheers,
Andrew