netlink 释放导致死机问题

netlink 资源释放函数 sock_release(my_nfd->sk_socket) 在高版本内核会导致死机。

现修改成:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
        netlink_kernel_release(my_nfd);
#else
        sock_release(my_nfd->sk_socket);
#endif



2.6.25  include/linux/netlink.h

extern void netlink_kernel_release(struct sock *sk);


 而 2.6.24 include/linux/netlink.h 没有此函数, 对应的 sock_release(struct socket *sock) 却位于 net.h 中。

可见 void netlink_kernel_release(struct sock *sk); 是linux kernel 2.6.25 新增函数且2.6.25 (含)以后内核netlink不可再使用 sock_release(struct socket *sock)

你可能感兴趣的:(Linux,kernel)