Author: cy
Date: Thu Dec 12 20:44:49 2019
New Revision: 355670
URL: https://svnweb.freebsd.org/changeset/base/355670

Log:
  Rather than pass the address of the packet information control block to
  ipf_pcksum6(), directly pass the adddress of the mbuf to it. This reduces
  one pointer dereference. ipf_pcksum6() doesn't use the packet information
  control block except to obtain the mbuf address.
  
  MFC after:    3 days

Modified:
  head/sys/contrib/ipfilter/netinet/fil.c
  head/sys/contrib/ipfilter/netinet/ip_fil.h
  head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c

Modified: head/sys/contrib/ipfilter/netinet/fil.c
==============================================================================
--- head/sys/contrib/ipfilter/netinet/fil.c     Thu Dec 12 20:44:46 2019        
(r355669)
+++ head/sys/contrib/ipfilter/netinet/fil.c     Thu Dec 12 20:44:49 2019        
(r355670)
@@ -3436,7 +3436,7 @@ fr_cksum(fin, ip, l4proto, l4hdr)
                ip6 = (ip6_t *)ip;
                off = ((caddr_t)ip6 - m->m_data) + sizeof(struct ip6_hdr);
                int len = ntohs(ip6->ip6_plen) - (off - sizeof(*ip6));
-               return(ipf_pcksum6(fin, ip6, off, len));
+               return(ipf_pcksum6(m, ip6, off, len));
        } else {
                return 0xffff;
        }

Modified: head/sys/contrib/ipfilter/netinet/ip_fil.h
==============================================================================
--- head/sys/contrib/ipfilter/netinet/ip_fil.h  Thu Dec 12 20:44:46 2019        
(r355669)
+++ head/sys/contrib/ipfilter/netinet/ip_fil.h  Thu Dec 12 20:44:49 2019        
(r355670)
@@ -1840,7 +1840,7 @@ extern    int             ipf_matchicmpqueryreply 
__P((int, icmpinfo
 extern u_32_t          ipf_newisn __P((fr_info_t *));
 extern u_int           ipf_pcksum __P((fr_info_t *, int, u_int));
 #ifdef USE_INET6
-extern u_int           ipf_pcksum6 __P((fr_info_t *, ip6_t *,
+extern u_int           ipf_pcksum6 __P((struct mbuf *, ip6_t *,
                                                u_int32_t, u_int32_t));
 #endif
 extern void            ipf_rule_expire __P((ipf_main_softc_t *));

Modified: head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
==============================================================================
--- head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c  Thu Dec 12 20:44:46 
2019        (r355669)
+++ head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c  Thu Dec 12 20:44:49 
2019        (r355670)
@@ -1456,17 +1456,15 @@ ipf_pcksum(fin, hlen, sum)
 
 #ifdef USE_INET6
 u_int
-ipf_pcksum6(fin, ip6, off, len)
-       fr_info_t *fin;
+ipf_pcksum6(m, ip6, off, len)
+       struct mbuf *m;
        ip6_t *ip6;
        u_int32_t off;
        u_int32_t len;
 {
 #ifdef _KERNEL
-       struct mbuf *m;
        int sum;
 
-       m = fin->fin_m;
        if (m->m_len < sizeof(struct ip6_hdr)) {
                return 0xffff;
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to