diff options
author | gallatin <gallatin@FreeBSD.org> | 1999-10-03 21:09:30 +0000 |
---|---|---|
committer | gallatin <gallatin@FreeBSD.org> | 1999-10-03 21:09:30 +0000 |
commit | 9a5996a307b039347019c86523d3b37e893b7b9d (patch) | |
tree | ac3c683a0deb706196df9929e61eecb5c0d4eb33 /sys/pci | |
parent | b7c59a09dd8fabb6a09bab59c5b92839c9e21fb0 (diff) | |
download | FreeBSD-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.c | 4 |
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; |