Re: git: network - Remove crit_exit/crit_enter wrappers in pf.c

看板DFBSD_commit作者時間15年前 (2010/09/18 09:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
On Fri, Sep 17, 2010 at 04:40:15PM -0700, Matthew Dillon wrote: > commit b8a167909d6e02262d0f8fa42ae3e75a2febc3b0 > Author: Matthew Dillon <dillon@apollo.backplane.com> > Date: Fri Sep 17 16:38:37 2010 -0700 > > network - Remove crit_exit/crit_enter wrappers in pf.c > > * Note I'm talking about exit/enter wrappers, not enter/exit wrappers. > I believe the enter/exit wrappers can be removed too but for now > we have to remove the exit/enter wrappers which assumed a critical > section would be held on entry. > > This is no longer the case. Since so much of the network stack is > now threaded callers into PF are not necessarily holding a critical > section to exit out of. > > Reported-by: lentferj, Rumko > > Summary of changes: > sys/dev/netif/fxp/if_fxp.c | 7 ++++--- > sys/net/pf/pf.c | 24 ++---------------------- > 2 files changed, 6 insertions(+), 25 deletions(-) While looking at this change, I found an odd piece of code in pf_route6() at line 5384; there's no prior call to crit_exit() in this function. Is this OK? /* Cheat. XXX why only in the v6 case??? */ if (r->rt == PF_FASTROUTE) { m0->m_pkthdr.pf.flags |= PF_TAG_GENERATED; ip6_output(m0, NULL, NULL, 0, NULL, NULL, NULL); crit_enter(); return; }
文章代碼(AID): #1Cb0zI27 (DFBSD_commit)
文章代碼(AID): #1Cb0zI27 (DFBSD_commit)