summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2001-12-31 21:11:02 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2001-12-31 21:11:02 +0000
commit3bfce77f27869dba713c93dd1914e5eb8ae547bd (patch)
tree948a6c8e025d667bf9d8a3fe557e89972ab42f5f /sys
parent0d227c4e86fd246a7da6e9edb97e6bef77779729 (diff)
unmap io space on failures and happy new year in russian
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/cac_pci.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/pci/cac_pci.c b/sys/dev/pci/cac_pci.c
index f31c79e2a71..385a27cf174 100644
--- a/sys/dev/pci/cac_pci.c
+++ b/sys/dev/pci/cac_pci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cac_pci.c,v 1.7 2001/11/05 17:25:58 art Exp $ */
+/* $OpenBSD: cac_pci.c,v 1.8 2001/12/31 21:11:01 mickey Exp $ */
/* $NetBSD: cac_pci.c,v 1.10 2001/01/10 16:48:04 ad Exp $ */
/*-
@@ -171,6 +171,7 @@ cac_pci_attach(parent, self, aux)
pci_intr_handle_t ih;
const char *intrstr;
pcireg_t reg;
+ bus_size_t size;
int memr, ior, i;
sc = (struct cac_softc *)self;
@@ -198,14 +199,14 @@ cac_pci_attach(parent, self, aux)
if (memr != -1) {
if (pci_mapreg_map(pa, memr, PCI_MAPREG_TYPE_MEM, 0,
- &sc->sc_iot, &sc->sc_ioh, NULL, NULL, 0))
+ &sc->sc_iot, &sc->sc_ioh, NULL, &size, 0))
memr = -1;
else
ior = -1;
}
if (ior != -1)
if (pci_mapreg_map(pa, ior, PCI_MAPREG_TYPE_IO, 0,
- &sc->sc_iot, &sc->sc_ioh, NULL, NULL, 0))
+ &sc->sc_iot, &sc->sc_ioh, NULL, &size, 0))
ior = -1;
if (memr == -1 && ior == -1) {
printf("%s: can't map i/o or memory space\n", self->dv_xname);
@@ -222,6 +223,7 @@ cac_pci_attach(parent, self, aux)
/* Map and establish the interrupt. */
if (pci_intr_map(pa, &ih)) {
printf(": can't map interrupt\n");
+ bus_space_unmap(sc->sc_iot, sc->sc_ioh, size);
return;
}
intrstr = pci_intr_string(pc, ih);
@@ -232,6 +234,7 @@ cac_pci_attach(parent, self, aux)
if (intrstr != NULL)
printf(" at %s", intrstr);
printf("\n");
+ bus_space_unmap(sc->sc_iot, sc->sc_ioh, size);
return;
}