mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 05:58:57 +00:00
pf: save on branching in the common case in pf_test
Reviewed by: kp Sponsored by: Rubicon Communications, LLC ("Netgate")
This commit is contained in:
parent
e0a17c3f06
commit
5091ca2650
@ -6151,7 +6151,7 @@ pf_test(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, struct inpcb *
|
||||
|
||||
PF_RULES_RLOCK();
|
||||
|
||||
if (ip_divert_ptr != NULL &&
|
||||
if (__predict_false(ip_divert_ptr != NULL) &&
|
||||
((ipfwtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL)) != NULL)) {
|
||||
struct ipfw_rule_ref *rr = (struct ipfw_rule_ref *)(ipfwtag+1);
|
||||
if (rr->info & IPFW_IS_DIVERT && rr->rulenum == 0) {
|
||||
@ -6419,8 +6419,8 @@ done:
|
||||
IN_LOOPBACK(ntohl(pd.dst->v4.s_addr)))
|
||||
m->m_flags |= M_SKIP_FIREWALL;
|
||||
|
||||
if (action == PF_PASS && r->divert.port && ip_divert_ptr != NULL &&
|
||||
!PACKET_LOOPED(&pd)) {
|
||||
if (__predict_false(ip_divert_ptr != NULL) && action == PF_PASS &&
|
||||
r->divert.port && !PACKET_LOOPED(&pd)) {
|
||||
ipfwtag = m_tag_alloc(MTAG_IPFW_RULE, 0,
|
||||
sizeof(struct ipfw_rule_ref), M_NOWAIT | M_ZERO);
|
||||
if (ipfwtag != NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user