diff options
author | wpaul <wpaul@FreeBSD.org> | 2004-02-08 20:32:41 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2004-02-08 20:32:41 +0000 |
commit | fc00d2a1cde402554e27af3e2916b0cfd6cb7266 (patch) | |
tree | 411cbc1bbf33fc8a3066532a55d04d15716820cb | |
parent | 4977f49a15c933566f6912d44c2d3c9160f290a0 (diff) | |
download | FreeBSD-src-fc00d2a1cde402554e27af3e2916b0cfd6cb7266.zip FreeBSD-src-fc00d2a1cde402554e27af3e2916b0cfd6cb7266.tar.gz |
Make NdisMMapIoSpace() handle the case where a device has both mem
and altmem ranges mapped.
-rw-r--r-- | sys/compat/ndis/subr_ndis.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/compat/ndis/subr_ndis.c b/sys/compat/ndis/subr_ndis.c index 990b0fa..ccda640 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); } |