aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorBill Paul <wpaul@FreeBSD.org>2004-08-01 06:42:44 +0000
committerBill Paul <wpaul@FreeBSD.org>2004-08-01 06:42:44 +0000
commitdde913e3ca953e8d37e3a324dba16db6ad1b8c1a (patch)
tree768f38d5fa2e0f922113aa580e21d9fd8d593163 /sys
parent73a9bdc48c3af954386e04a555ab80b4c9a27e77 (diff)
downloadsrc-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.c20
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;
}