If we fail to attach, use the size determined by pci_mapreg_map() rather
than a constant, since this will be incorrect on some chips (MPI350) and lead to a panic.
This commit is contained in:
parent
f7d8f11391
commit
e0d3b63ac3
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: anreg.h,v 1.13 2006/02/19 08:20:46 dyoung Exp $ */
|
||||
/* $NetBSD: anreg.h,v 1.14 2007/04/06 18:16:29 rumble Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1997, 1998, 1999
|
||||
* Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
|
||||
|
@ -36,11 +36,6 @@
|
|||
#ifndef _DEV_IC_ANREG_H
|
||||
#define _DEV_IC_ANREG_H
|
||||
|
||||
/*
|
||||
* Size of Aironet I/O space.
|
||||
*/
|
||||
#define AN_IOSIZ 0x40
|
||||
|
||||
/*
|
||||
* Hermes register definitions and what little I know about them.
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_an_pci.c,v 1.21 2006/11/16 01:33:08 christos Exp $ */
|
||||
/* $NetBSD: if_an_pci.c,v 1.22 2007/04/06 18:16:29 rumble Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
|
@ -43,7 +43,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: if_an_pci.c,v 1.21 2006/11/16 01:33:08 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: if_an_pci.c,v 1.22 2007/04/06 18:16:29 rumble Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -127,6 +127,7 @@ an_pci_attach(struct device *parent, struct device *self, void *aux)
|
|||
char devinfo[256];
|
||||
char const *intrstr;
|
||||
pci_intr_handle_t ih;
|
||||
bus_size_t iosize;
|
||||
u_int32_t csr;
|
||||
|
||||
aprint_naive(": 802.11 controller\n");
|
||||
|
@ -136,7 +137,7 @@ an_pci_attach(struct device *parent, struct device *self, void *aux)
|
|||
|
||||
/* Map I/O registers */
|
||||
if (pci_mapreg_map(pa, AN_PCI_IOBA, PCI_MAPREG_TYPE_IO, 0,
|
||||
&sc->sc_iot, &sc->sc_ioh, NULL, NULL) != 0) {
|
||||
&sc->sc_iot, &sc->sc_ioh, NULL, &iosize) != 0) {
|
||||
aprint_error("%s: unable to map registers\n", self->dv_xname);
|
||||
return;
|
||||
}
|
||||
|
@ -168,6 +169,6 @@ an_pci_attach(struct device *parent, struct device *self, void *aux)
|
|||
aprint_error("%s: failed to attach controller\n",
|
||||
self->dv_xname);
|
||||
pci_intr_disestablish(pa->pa_pc, psc->sc_ih);
|
||||
bus_space_unmap(sc->sc_iot, sc->sc_ioh, AN_IOSIZ);
|
||||
bus_space_unmap(sc->sc_iot, sc->sc_ioh, iosize);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue