summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2016-05-13 11:18:27 +0000
committerbz <bz@FreeBSD.org>2016-05-13 11:18:27 +0000
commit032a8b1655dcd27c8b84b285329262c30a158cbf (patch)
tree16c7544f5c2dda16192f31ce10f4e372d7521988 /sys/dev/pci
parentd52ef4d2db8cf078bcb3f46a15acd3046bfed078 (diff)
downloadFreeBSD-src-032a8b1655dcd27c8b84b285329262c30a158cbf.zip
FreeBSD-src-032a8b1655dcd27c8b84b285329262c30a158cbf.tar.gz
When using IOPORT with pci_host_generic we are missing setting the rman_end()
which leads to end being before start and thus a signed extended very large number of size later on, which kva_alloc() will fail upon and we will panic. Add the missing call. Debugged with: andrew Reviewed by: br, andrew Sponsored by: DARPA/AFRL Found: while using virtio with gem5 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D6337
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/pci_host_generic.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/pci/pci_host_generic.c b/sys/dev/pci/pci_host_generic.c
index 617f2f6..8ecf9c6 100644
--- a/sys/dev/pci/pci_host_generic.c
+++ b/sys/dev/pci/pci_host_generic.c
@@ -613,6 +613,7 @@ generic_pcie_activate_resource(device_t dev, device_t child, int type, int rid,
}
if (found) {
rman_set_start(r, rman_get_start(r) + phys_base);
+ rman_set_end(r, rman_get_end(r) + phys_base);
BUS_ACTIVATE_RESOURCE(device_get_parent(dev), child,
type, rid, r);
} else {
OpenPOWER on IntegriCloud