[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <537F0951.5010904@lab.ntt.co.jp>
Date: Fri, 23 May 2014 17:39:45 +0900
From: Toshiaki Makita <makita.toshiaki@....ntt.co.jp>
To: Jon Maxwell <jmaxwell@...hat.com>
CC: Jon Maxwell <jmaxwell37@...il.com>, stephen@...workplumber.org,
davem@...emloft.net, vyasevic@...hat.com,
bridge@...ts.linux-foundation.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, jpirko@...hat.com
Subject: Re: [PATCH net] bridge: notify user space of fdb port change
(2014/05/23 13:59), Jon Maxwell wrote:
...
> Makita-san,
>
> I recoded this using your idea and ran it through a reproducer.
> It work fine. After some more consideration I agree that
> setting fdb->dst = source is only required when source != fdb->dst.
>
> Thanks for your suggestions. This is the revised patch. It should
> retain the original behaviour except for the notify after the fdb update.
>
> Please let me know if you have any further input?
I have no more comments except for style problems (bracket position,
indentation, type mismatch).
thank you for rewriting :)
Thanks,
Toshiaki Makita
>
> $ diff -Naur br_fdb.c br_fdb.c.patch
> --- br_fdb.c 2014-05-17 12:43:23.346319609 +1000
> +++ br_fdb.c.patch 2014-05-17 16:54:46.280235728 +1000
> @@ -487,6 +487,7 @@
> {
> struct hlist_head *head = &br->hash[br_mac_hash(addr, vid)];
> struct net_bridge_fdb_entry *fdb;
> + bool fdb_modified = 0;
>
> /* some users want to always flood. */
> if (hold_time(br) == 0)
> @@ -507,10 +508,16 @@
> source->dev->name);
> } else {
> /* fastpath: update of existing entry */
> - fdb->dst = source;
> + if (unlikely(source != fdb->dst))
> + {
> + fdb->dst = source;
> + fdb_modified = 1;
> + }
> fdb->updated = jiffies;
> if (unlikely(added_by_user))
> fdb->added_by_user = 1;
> + if (unlikely(fdb_modified))
> + fdb_notify(br, fdb, RTM_NEWNEIGH);
> }
> } else {
> spin_lock(&br->hash_lock);
>
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists