The refcount on ip6addrlbl_entry is only used to make sure ip6addrlbl_entry does not disappear while ip6addrlbl_get() is allocating an skb.
We can instead allocate skb first, then use RCU, so that we no longer need to refcount these structures. Eric Dumazet (2): ipv6: addrlabel: rework ip6addrlbl_get() ipv6: addrlabel: remove refcounting net/ipv6/addrlabel.c | 69 +++++++++++++--------------------------------------- 1 file changed, 17 insertions(+), 52 deletions(-) -- 2.14.2.920.gcf0c67979c-goog