On Wed, Feb 19, 2014 at 08:49:01PM +0200, Mikolaj Golub wrote: M> > -SLIST_HEAD(pf_overload_head, pf_overload_entry); M> > +struct pf_overload_head { M> > + SLIST_HEAD(, pf_overload_entry) head; M> > + struct vnet *vnet; M> > +}; M> > static VNET_DEFINE(struct pf_overload_head, pf_overloadqueue); M> > #define V_pf_overloadqueue VNET(pf_overloadqueue) M> M> ... M> M> > - SLIST_INIT(&V_pf_overloadqueue); M> > + SLIST_INIT(&V_pf_overloadqueue.head); M> > TASK_INIT(&V_pf_overloadtask, 0, pf_overload_task, &V_pf_overloadqueue); M> > + V_pf_overloadqueue.vnet = curvnet; M> M> Why not pass vnet as a context to pf_overload_task instead of M> &V_pf_overloadqueue? Then you would not need this hack with storing a M> vnet inside a vnet variable.
Yes, that would look much better. The pf_overloadqueue can be made global after that. Its lock is already global. -- Totus tuus, Glebius. _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"