svn commit: r193478 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
Kip Macy
kmacy at FreeBSD.org
Fri Jun 5 01:00:29 UTC 2009
Author: kmacy
Date: Fri Jun 5 01:00:28 2009
New Revision: 193478
URL: http://svn.freebsd.org/changeset/base/193478
Log:
- remove dead intr_bind call
- be a bit more careful about ensuring that callouts get drained in a timely fashion when
unloading
Modified:
user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c
user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c Fri Jun 5 00:30:28 2009 (r193477)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c Fri Jun 5 01:00:28 2009 (r193478)
@@ -839,16 +839,6 @@ cxgb_setup_msix(adapter_t *sc, int msix_
return (EINVAL);
}
-#if 0
-#ifdef IFNET_MULTIQUEUE
- if (multiq) {
- int vector = rman_get_start(sc->msix_irq_res[k]);
- if (bootverbose)
- device_printf(sc->dev, "binding vector=%d to cpu=%d\n", vector, k % mp_ncpus);
- intr_bind(vector, k % mp_ncpus);
- }
-#endif
-#endif
}
}
@@ -1727,6 +1717,9 @@ cxgb_release(struct adapter *sc)
if (sc->flags & USING_MSIX)
cxgb_teardown_msix(sc);
+ callout_drain(&sc->cxgb_tick_ch);
+ callout_drain(&sc->sge_timer_ch);
+
if (sc->tq != NULL) {
printf("draining slow intr\n");
taskqueue_drain(sc->tq, &sc->slow_intr_task);
@@ -2384,7 +2377,7 @@ cxgb_tick(void *arg)
{
adapter_t *sc = (adapter_t *)arg;
- if(sc->flags & CXGB_SHUTDOWN)
+ if ((sc->flags & CXGB_SHUTDOWN) || (sc->open_device_map == 0)
return;
taskqueue_enqueue(sc->tq, &sc->tick_task);
Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Fri Jun 5 00:30:28 2009 (r193477)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Fri Jun 5 01:00:28 2009 (r193478)
@@ -831,6 +831,9 @@ sge_timer_cb(void *arg)
int i, j;
int reclaim_ofl, refill_rx;
+ if (sc->open_device_map == 0)
+ return;
+
for (i = 0; i < sc->params.nports; i++) {
pi = &sc->port[i];
for (j = 0; j < pi->nqsets; j++) {
More information about the svn-src-user
mailing list