diff options
-rw-r--r-- | sys/amd64/pci/pci_cfgreg.c | 3 | ||||
-rw-r--r-- | sys/i386/pci/pci_cfgreg.c | 3 | ||||
-rw-r--r-- | sys/i386/pci/pci_pir.c | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/sys/amd64/pci/pci_cfgreg.c b/sys/amd64/pci/pci_cfgreg.c index 1562fd9..0d943f3 100644 --- a/sys/amd64/pci/pci_cfgreg.c +++ b/sys/amd64/pci/pci_cfgreg.c @@ -169,7 +169,8 @@ pci_cfgregopen(void) i < (pt->pt_header.ph_length); i++) { ck += cv[i]; } - if (ck == 0) { + if (ck == 0 && pt->pt_header.ph_length > + sizeof(struct PIR_header)) { pci_route_table = pt; pci_route_count = (pt->pt_header.ph_length - sizeof(struct PIR_header)) / diff --git a/sys/i386/pci/pci_cfgreg.c b/sys/i386/pci/pci_cfgreg.c index 1562fd9..0d943f3 100644 --- a/sys/i386/pci/pci_cfgreg.c +++ b/sys/i386/pci/pci_cfgreg.c @@ -169,7 +169,8 @@ pci_cfgregopen(void) i < (pt->pt_header.ph_length); i++) { ck += cv[i]; } - if (ck == 0) { + if (ck == 0 && pt->pt_header.ph_length > + sizeof(struct PIR_header)) { pci_route_table = pt; pci_route_count = (pt->pt_header.ph_length - sizeof(struct PIR_header)) / diff --git a/sys/i386/pci/pci_pir.c b/sys/i386/pci/pci_pir.c index 1562fd9..0d943f3 100644 --- a/sys/i386/pci/pci_pir.c +++ b/sys/i386/pci/pci_pir.c @@ -169,7 +169,8 @@ pci_cfgregopen(void) i < (pt->pt_header.ph_length); i++) { ck += cv[i]; } - if (ck == 0) { + if (ck == 0 && pt->pt_header.ph_length > + sizeof(struct PIR_header)) { pci_route_table = pt; pci_route_count = (pt->pt_header.ph_length - sizeof(struct PIR_header)) / |