summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/pci/pci_cfgreg.c3
-rw-r--r--sys/i386/pci/pci_cfgreg.c3
-rw-r--r--sys/i386/pci/pci_pir.c3
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)) /
OpenPOWER on IntegriCloud