On Wed, Jun 17, 2015 at 02:08:14PM +0200, Martin Pieuchot wrote: > diff -u -p -r1.340 if.c > --- net/if.c 16 Jun 2015 11:09:39 -0000 1.340 > +++ net/if.c 17 Jun 2015 12:03:36 -0000 > @@ -530,6 +530,15 @@ if_input_process(void *xmq) > continue; > } > > +#if NBRIDGE > 0 > + if (ifp->if_bridgeport && (m->m_flags & M_PROTO1) == 0) { > + m = bridge_input(m); > + if (m == NULL) > + continue; > + } > + m->m_flags &= ~M_PROTO1; /* Loop prevention */ > +#endif
Should we reset the loop prevention only if our call to bridge_input() did set M_PROTO1? Something like this if (ifp->if_bridgeport && (m->m_flags & M_PROTO1) == 0) { m = bridge_input(m); if (m == NULL) continue; m->m_flags &= ~M_PROTO1; /* Loop prevention */ } otherwise OK bluhm@