summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>1999-10-03 21:09:30 +0000
committergallatin <gallatin@FreeBSD.org>1999-10-03 21:09:30 +0000
commit9a5996a307b039347019c86523d3b37e893b7b9d (patch)
treeac3c683a0deb706196df9929e61eecb5c0d4eb33 /sys/pci
parentb7c59a09dd8fabb6a09bab59c5b92839c9e21fb0 (diff)
downloadFreeBSD-src-9a5996a307b039347019c86523d3b37e893b7b9d.zip
FreeBSD-src-9a5996a307b039347019c86523d3b37e893b7b9d.tar.gz
A band-aid to prevent multi-hose alpha chipsets (aka tsunami) from
panic'ing because the hose is not filled in. We should probably extend the pciioctl interface to take hoses into account..
Diffstat (limited to 'sys/pci')
-rw-r--r--sys/pci/pci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/pci/pci.c b/sys/pci/pci.c
index 70b53e9..4305b6c 100644
--- a/sys/pci/pci.c
+++ b/sys/pci/pci.c
@@ -178,6 +178,7 @@ pci_readmaps(pcicfgregs *cfg, int maxmaps)
if (map64 == 0) {
if (base == 0 || base == 0xffffffff)
continue; /* skip invalid entry */
+
pci_cfgwrite(cfg, reg, 0xffffffff, 4);
testval = pci_cfgread(cfg, reg, 4);
pci_cfgwrite(cfg, reg, base, 4);
@@ -346,6 +347,7 @@ pci_readcfg(pcicfgregs *probe)
devlist_entry = NULL;
if (pci_cfgread(probe, PCIR_DEVVENDOR, 4) != -1) {
+
devlist_entry = malloc(sizeof(struct pci_devinfo),
M_DEVBUF, M_WAITOK);
if (devlist_entry == NULL)
@@ -843,6 +845,7 @@ pci_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
case 4:
case 2:
case 1:
+ probe.hose = 0; /* XXXXX */
probe.bus = io->pi_sel.pc_bus;
probe.slot = io->pi_sel.pc_dev;
probe.func = io->pi_sel.pc_func;
@@ -863,6 +866,7 @@ pci_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
case 4:
case 2:
case 1:
+ probe.hose = 0; /* XXXXX */
probe.bus = io->pi_sel.pc_bus;
probe.slot = io->pi_sel.pc_dev;
probe.func = io->pi_sel.pc_func;
OpenPOWER on IntegriCloud