summaryrefslogtreecommitdiffstats
path: root/sys/dev/if_ndis
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2004-01-12 21:04:43 +0000
committerwpaul <wpaul@FreeBSD.org>2004-01-12 21:04:43 +0000
commit2c0e413ccc02aa53f20af2ca9655c8fcdd1010ed (patch)
tree6b943b664c1056c5a4a38f9487dff9f5c10e9879 /sys/dev/if_ndis
parentb8f6f55191628c415af10985e1e05f4c5613aff6 (diff)
downloadFreeBSD-src-2c0e413ccc02aa53f20af2ca9655c8fcdd1010ed.zip
FreeBSD-src-2c0e413ccc02aa53f20af2ca9655c8fcdd1010ed.tar.gz
Ugh. Last commit went horribly wrong. Back out changes to subr_ntoskrnl.c,
make sure if_ndis.c really gets checked in this time.
Diffstat (limited to 'sys/dev/if_ndis')
-rw-r--r--sys/dev/if_ndis/if_ndis.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/dev/if_ndis/if_ndis.c b/sys/dev/if_ndis/if_ndis.c
index 415e262..a3a9806 100644
--- a/sys/dev/if_ndis/if_ndis.c
+++ b/sys/dev/if_ndis/if_ndis.c
@@ -240,6 +240,11 @@ ndis_attach(dev)
sc->ndis_dev = dev;
sc->ndis_mtx = mtx_pool_alloc(ndis_mtxpool);
+ sc->ndis_intrmtx = mtx_pool_alloc(ndis_mtxpool);
+ TASK_INIT(&sc->ndis_intrtask, 0, ndis_intrtask, sc);
+ TASK_INIT(&sc->ndis_ticktask, 0, ndis_ticktask, sc);
+ TASK_INIT(&sc->ndis_starttask, 0, ndis_starttask, sc);
+
/*
* Map control/status registers.
@@ -332,11 +337,6 @@ ndis_attach(dev)
goto fail;
}
- sc->ndis_intrmtx = mtx_pool_alloc(ndis_mtxpool);
- TASK_INIT(&sc->ndis_intrtask, 0, ndis_intrtask, sc);
- TASK_INIT(&sc->ndis_ticktask, 0, ndis_ticktask, sc);
- TASK_INIT(&sc->ndis_starttask, 0, ndis_starttask, sc);
-
/*
* Allocate the parent bus DMA tag appropriate for PCI.
*/
@@ -928,7 +928,8 @@ ndis_intr(arg)
sc = arg;
ifp = &sc->arpcom.ac_if;
- if (!(ifp->if_flags & IFF_UP))
+ if (!(ifp->if_flags & IFF_UP) &&
+ sc->ndis_block.nmb_miniportadapterctx == NULL)
return;
mtx_lock(sc->ndis_intrmtx);
@@ -940,7 +941,7 @@ ndis_intr(arg)
}
mtx_unlock(sc->ndis_intrmtx);
- if (is_our_intr || call_isr)
+ if ((is_our_intr || call_isr) && (ifp->if_flags & IFF_UP))
taskqueue_enqueue(taskqueue_swi, &sc->ndis_intrtask);
return;
OpenPOWER on IntegriCloud