On Sun, Jul 9, 2017 at 10:08 PM, Cong Wang <xiyou.wangc...@gmail.com> wrote: > netlink_sendskb() is problematic, it releases sock refcnt > silently which could cause troubles we can call it multiple > times. info->notify_sock is a good example where we > setup once and use it to send netlink skb's for many times. > It should not hold or release any refcnt, but needs to rely > on netlink_attachskb()/netlink_detachskb() to hold/release > the corresponding refcnt. > > Same for the skb attached to this sock, it is allocated once > and used for multiple times, so we should hold its refcnt > in netlink_attachskb(). > > At last, we need to call netlink_detachskb() to release > both refcnt's after we remove the notification.
Hmm, the info->notify_owner is NULL'ed after sending the notification, so probably we don't put the sock refcnt repeatly. Not sure about the skb though...