Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 2013 16:53:29 +0200
From:      Andre Oppermann <andre@freebsd.org>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        net@freebsd.org
Subject:   Re: RFC: removing redundant checks in ether_input_internal()
Message-ID:  <519CDBE9.304@freebsd.org>
In-Reply-To: <20130522125828.GA93728@onelab2.iet.unipi.it>
References:  <20130522125828.GA93728@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
On 22.05.2013 14:58, Luigi Rizzo wrote:
> if_ethersubr.c :: ether_input_internal() is only called as follows:
>
>      static void
>      ether_nh_input(struct mbuf *m)
>      {
>
>          ether_input_internal(m->m_pkthdr.rcvif, m);
>      }
>
> hence the following checks in the body are unnecessary:
>
>          if (m->m_pkthdr.rcvif == NULL) {
>                  if_printf(ifp, "discard frame w/o interface pointer\n");
>                  ifp->if_ierrors++;
>                  m_freem(m);
>                  return;
>          }
>      #ifdef DIAGNOSTIC
>          if (m->m_pkthdr.rcvif != ifp) {
>                  if_printf(ifp, "Warning, frame marked as received on %s\n",
>                          m->m_pkthdr.rcvif->if_xname);
>          }
>      #endif
>
> Any objection if i remove them ?

No, but they should remain as KASSERTs.  None of these should trigger in
production and all of them are an indication that something is very wrong
with the packet or the caller.

-- 
Andre




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?519CDBE9.304>