diff options
author | wpaul <wpaul@FreeBSD.org> | 2004-01-12 21:04:43 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2004-01-12 21:04:43 +0000 |
commit | 2c0e413ccc02aa53f20af2ca9655c8fcdd1010ed (patch) | |
tree | 6b943b664c1056c5a4a38f9487dff9f5c10e9879 /sys/dev/if_ndis | |
parent | b8f6f55191628c415af10985e1e05f4c5613aff6 (diff) | |
download | FreeBSD-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.c | 15 |
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; |