From 4dfa77161a4bf141c995495c437608c53993c1c2 Mon Sep 17 00:00:00 2001 From: Bill Paul Date: Sun, 8 Feb 2004 20:32:41 +0000 Subject: [PATCH] Make NdisMMapIoSpace() handle the case where a device has both mem and altmem ranges mapped. --- sys/compat/ndis/subr_ndis.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/compat/ndis/subr_ndis.c b/sys/compat/ndis/subr_ndis.c index 990b0fa8258..ccda640381e 100644 --- a/sys/compat/ndis/subr_ndis.c +++ b/sys/compat/ndis/subr_ndis.c @@ -1464,11 +1464,13 @@ ndis_map_iospace(vaddr, adapter, paddr, len) block = (ndis_miniport_block *)adapter; sc = (struct ndis_softc *)(block->nmb_ifp); - if (sc->ndis_res_mem == NULL) + if (paddr.np_quad == rman_get_start(sc->ndis_res_mem)) + *vaddr = (void *)rman_get_virtual(sc->ndis_res_mem); + else if (paddr.np_quad == rman_get_start(sc->ndis_res_altmem)) + *vaddr = (void *)rman_get_virtual(sc->ndis_res_altmem); + else return(NDIS_STATUS_FAILURE); - *vaddr = (void *)rman_get_virtual(sc->ndis_res_mem); - return(NDIS_STATUS_SUCCESS); }