linux/net/decnet
Wei Wang 560fd93bca decnet: take dst->__refcnt when struct dn_route is created
struct dn_route is inserted into dn_rt_hash_table but no dst->__refcnt
is taken.
This patch makes sure the dn_rt_hash_table's reference to the dst is ref
counted.

As the dst is always ref counted properly, we can safely mark
DST_NOGC flag so dst_release() will release dst based on refcnt only.
And dst gc is no longer needed and all dst_free() or its related
function calls should be replaced with dst_release() or
dst_release_immediate(). And dst_dev_put() is called when removing dst
from the hash table to release the reference on dst->dev before we lose
pointer to it.

Also, correct the logic in dn_dst_check_expire() and dn_dst_gc() to
check dst->__refcnt to be > 1 to indicate it is referenced by other
users.

Signed-off-by: Wei Wang <weiwan@google.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-06-17 22:54:01 -04:00
..
netfilter decnet: dn_rtmsg: Improve input length sanitization in dnrmg_receive_user_skb 2017-06-08 10:51:22 -04:00
af_decnet.c tcp: add TCPMemoryPressuresChrono counter 2017-06-08 11:26:19 -04:00
dn_dev.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
dn_fib.c net: rtnetlink: plumb extended ack to doit function 2017-04-17 15:35:38 -04:00
dn_neigh.c DECnet: Use container_of() for embedded struct 2017-05-09 09:39:49 -04:00
dn_nsp_in.c
dn_nsp_out.c networking: add and use skb_put_u8() 2017-06-16 11:48:40 -04:00
dn_route.c decnet: take dst->__refcnt when struct dn_route is created 2017-06-17 22:54:01 -04:00
dn_rules.c
dn_table.c
dn_timer.c
Kconfig
Makefile
README
sysctl_net_decnet.c
TODO

                       Linux DECnet Project
                      ======================

The documentation for this kernel subsystem is available in the
Documentation/networking subdirectory of this distribution and also
on line at http://www.chygwyn.com/DECnet/

Steve Whitehouse <SteveW@ACM.org>