summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2004-02-08 20:32:41 +0000
committerwpaul <wpaul@FreeBSD.org>2004-02-08 20:32:41 +0000
commitfc00d2a1cde402554e27af3e2916b0cfd6cb7266 (patch)
tree411cbc1bbf33fc8a3066532a55d04d15716820cb
parent4977f49a15c933566f6912d44c2d3c9160f290a0 (diff)
downloadFreeBSD-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.c8
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);
}
OpenPOWER on IntegriCloud