我遇到一种情况,由
kmalloc
分配的内存不应该被释放,即使 Linux 内核的其他部分在其上调用 kfree
也是如此。以下是场景:
kmalloc()
分配内存并使用该缓冲区创建 skb
。有什么办法可以实现这一点吗?我知道我们可以通过使用页数来使用页面,但我不能使用页面。我必须使用 kmalloc。
#ifndef mem_map_reserve
#define mem_map_reserve(p) set_bit(PG_reserved, &((p)->flags))
#endif
struct page *page;
page = virt_to_page(addr + size - 1);
mem_map_reserve(page);