From a131f6c2fac68c828fffb5afa351ebdae0ae1c20 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Sat, 18 Aug 2012 15:17:50 +0800 Subject: [PATCH] bce: Dispatch callouts to interrupt's target CPU --- sys/dev/netif/bce/if_bce.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/dev/netif/bce/if_bce.c b/sys/dev/netif/bce/if_bce.c index 0356404..d173f81 100644 --- a/sys/dev/netif/bce/if_bce.c +++ b/sys/dev/netif/bce/if_bce.c @@ -4814,7 +4814,8 @@ bce_init(void *xsc) ifp->if_flags |= IFF_RUNNING; ifp->if_flags &= ~IFF_OACTIVE; - callout_reset(&sc->bce_tick_callout, hz, bce_tick, sc); + callout_reset_bycpu(&sc->bce_tick_callout, hz, bce_tick, sc, + sc->bce_intr_cpuid); back: if (error) bce_stop(sc); @@ -5779,7 +5780,8 @@ bce_pulse(void *xsc) } /* Schedule the next pulse. */ - callout_reset(&sc->bce_pulse_callout, hz, bce_pulse, sc); + callout_reset_bycpu(&sc->bce_pulse_callout, hz, bce_pulse, sc, + sc->bce_intr_cpuid); lwkt_serialize_exit(ifp->if_serializer); } @@ -5867,7 +5869,8 @@ bce_tick_serialized(struct bce_softc *sc) bce_stats_update(sc); /* Schedule the next tick. */ - callout_reset(&sc->bce_tick_callout, hz, bce_tick, sc); + callout_reset_bycpu(&sc->bce_tick_callout, hz, bce_tick, sc, + sc->bce_intr_cpuid); /* If link is up already up then we're done. */ if (sc->bce_link) -- 1.7.7.2