Star64_linux/net/dsa
Vivien Didelot 8e5bf9759a net: dsa: simplify tree reference counting
DSA trees have a refcount used to automatically free the dsa_switch_tree
structure once there is no switch devices inside of it.

The refcount is incremented when a switch is added to the tree, and
decremented when it is removed from it.

But because of kref_init, the refcount is also incremented at
initialization, and when looking up the tree from the list for symmetry.

Thus the current code stores the number of switches plus one, and makes
the switch registration more complex.

To simplify the switch registration function, we reset the refcount to
zero after initialization and don't increment it when looking up a tree.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-11-05 22:31:38 +09:00
..
dsa.c net: dsa: move fixed link registration helpers 2017-10-28 18:50:12 +09:00
dsa2.c net: dsa: simplify tree reference counting 2017-11-05 22:31:38 +09:00
dsa_priv.h net: dsa: remove name arg from slave create 2017-11-01 11:47:36 +09:00
Kconfig
legacy.c net: dsa: remove name arg from slave create 2017-11-01 11:47:36 +09:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
master.c net: dsa: change dsa_ptr for a dsa_port 2017-10-01 04:15:07 +01:00
port.c net: dsa: move fixed link registration helpers 2017-10-28 18:50:12 +09:00
slave.c net: dsa: make tree index unsigned 2017-11-05 22:31:38 +09:00
switch.c
tag_brcm.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00
tag_dsa.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00
tag_edsa.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00
tag_ksz.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00
tag_lan9303.c net: dsa: lan9303: lan9303_rcv set skb->offload_fwd_mark 2017-11-01 21:30:24 +09:00
tag_mtk.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00
tag_qca.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00
tag_trailer.c net: dsa: rename dsa_master_get_slave 2017-10-18 12:24:33 +01:00