]> git.baikalelectronics.ru Git - kernel.git/commit
netlink: add netlink_skb_set_owner_r()
authorPatrick McHardy <kaber@trash.net>
Wed, 17 Apr 2013 06:47:00 +0000 (06:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Apr 2013 18:57:57 +0000 (14:57 -0400)
commitc366cff531d9be8d9a680d19f986b65779e40b00
treeb2c087fe536127cf30639a773a8da78452994041
parent87be2776ab0dc0cf0c6d9eb2280f440df16d7bcd
netlink: add netlink_skb_set_owner_r()

For mmap'ed I/O a netlink specific skb destructor needs to be invoked
after the final kfree_skb() to clean up state. This doesn't work currently
since the skb's ownership is transfered to the receiving socket using
skb_set_owner_r(), which orphans the skb, thereby invoking the destructor
prematurely.

Since netlink doesn't account skbs to the originating socket, there's no
need to orphan the skb. Add a netlink specific skb_set_owner_r() variant
that does not orphan the skb and use a netlink specific destructor to
call sock_rfree().

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/af_netlink.c