1
我正在开发一些Linux内核的网络驱动程序。它工作正常,但似乎有内存泄漏。我认为这两个功能我用怀疑:sk_buff结构函数和内存泄漏
skb2 = skb_realloc_headroom(skb, size);
skb2 = skb_copy_expand(skb, skb_headroom(skb), size, GFP_ATOMIC);
我的问题是 - 做这些功能使SKB的副本SKB2和我可以放心地免费SKB与否?或者,也许skb2只是扩大skb,我不能释放他们?
skb_realloc_headroom不释放原来的SKB!大多数情况下,我都可以在原件上找到调用consume_skb的东西。 consume_skb调用__kfree_skb。 –