The branch main has been updated by mjg:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=5091ca26507b83ebd5ce677dd26bd10e4bad4153

commit 5091ca26507b83ebd5ce677dd26bd10e4bad4153
Author:     Mateusz Guzik <[email protected]>
AuthorDate: 2021-08-17 18:04:31 +0000
Commit:     Mateusz Guzik <[email protected]>
CommitDate: 2021-08-17 19:56:33 +0000

    pf: save on branching in the common case in pf_test
    
    Reviewed by:    kp
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 sys/netpfil/pf/pf.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index e2dd3eb7c0de..add76c7b98d4 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -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) {
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "[email protected]"

Reply via email to