diff options
author | Bill Paul <wpaul@FreeBSD.org> | 2004-08-01 06:42:44 +0000 |
---|---|---|
committer | Bill Paul <wpaul@FreeBSD.org> | 2004-08-01 06:42:44 +0000 |
commit | dde913e3ca953e8d37e3a324dba16db6ad1b8c1a (patch) | |
tree | 768f38d5fa2e0f922113aa580e21d9fd8d593163 /sys | |
parent | 73a9bdc48c3af954386e04a555ab80b4c9a27e77 (diff) | |
download | src-dde913e3ca953e8d37e3a324dba16db6ad1b8c1a.tar.gz src-dde913e3ca953e8d37e3a324dba16db6ad1b8c1a.zip |
Add some minor changes related to PCMCIA attribute memory mapping
(which I apparently forgot to commit earlier).
Acquire NDIS_LOCK() in ndis_linksts_done().
Notes
Notes:
svn path=/head/; revision=132953
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/if_ndis/if_ndis.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sys/dev/if_ndis/if_ndis.c b/sys/dev/if_ndis/if_ndis.c index 60b6096b53a7..4a3fd9622738 100644 --- a/sys/dev/if_ndis/if_ndis.c +++ b/sys/dev/if_ndis/if_ndis.c @@ -73,8 +73,8 @@ __FBSDID("$FreeBSD$"); #include <compat/ndis/pe_var.h> #include <compat/ndis/resource_var.h> -#include <compat/ndis/hal_var.h> #include <compat/ndis/ntoskrnl_var.h> +#include <compat/ndis/hal_var.h> #include <compat/ndis/ndis_var.h> #include <compat/ndis/cfg_var.h> #include <dev/if_ndis/if_ndisvar.h> @@ -389,6 +389,15 @@ ndis_attach(dev) goto fail; } + if (sc->ndis_iftype == PCMCIABus) { + error = ndis_alloc_amem(sc); + if (error) { + device_printf(dev, "failed to allocate " + "attribute memory\n"); + goto fail; + } + } + sc->ndis_regvals = ndis_regvals; #if __FreeBSD_version < 502113 @@ -737,6 +746,9 @@ ndis_detach(dev) bus_release_resource(dev, SYS_RES_MEMORY, sc->ndis_altmem_rid, sc->ndis_res_altmem); + if (sc->ndis_iftype == PCMCIABus) + ndis_free_amem(sc); + if (sc->ndis_sc) ndis_destroy_dma(sc); @@ -957,8 +969,11 @@ ndis_linksts_done(adapter) ifp = block->nmb_ifp; sc = ifp->if_softc; - if (!NDIS_INITIALIZED(sc)) + NDIS_LOCK(sc); + if (!NDIS_INITIALIZED(sc)) { + NDIS_UNLOCK(sc); return; + } switch (block->nmb_getstat) { case NDIS_STATUS_MEDIA_CONNECT: @@ -973,6 +988,7 @@ ndis_linksts_done(adapter) break; } + NDIS_UNLOCK(sc); return; } |