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@

Reply via email to