This looks nice in general, getting things out of softirq context is always good.
On Tue, Sep 11, 2007 at 02:56:13PM +0200, Eric Dumazet wrote: > #if RT_CACHE_DEBUG >= 2 > static atomic_t dst_total = ATOMIC_INIT(0); > #endif > -static unsigned long dst_gc_timer_expires; > -static unsigned long dst_gc_timer_inc = DST_GC_MAX; > -static void dst_run_gc(unsigned long); > +static struct { > + spinlock_t lock; > + struct dst_entry *list; > + unsigned long timer_inc; > + unsigned long timer_expires; > +} dst_garbage = { > + .lock = __SPIN_LOCK_UNLOCKED(dst_garbage.lock), > + .timer_inc = DST_GC_MAX, > +}; Can you please et rid of this useless struct? It just complicates the code and means we can't use the proper DEFINE_SPINLOCK initializer. > +DECLARE_DELAYED_WORK(dst_gc_work, dst_gc_task); This should be static. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html