【发布时间】:2015-03-04 16:08:02
【问题描述】:
对于编译到 Linux 内核中的设备驱动程序,是否应该通过相应的 kfree() 调用来释放 kmalloc 的内存?
我说的是在初始化时分配一次的内存,而不是在驱动程序生命周期内连续分配的内存。我假设没有必要释放分配的内存,因为内置驱动程序的生命周期是内核的生命周期。是的,分配的内存是驱动程序运行所必需的,在驱动程序初始化后无法释放;即不可能有 __init 宏。
我没有看到上面的明确说明,想确定一下。
【问题讨论】:
-
驱动程序如何在编码时知道它是编译为内置还是模块?
-
@Miline,很少有模块不能编译为模块。它们通常由 Kconfig 中的布尔选择器标记。
标签: memory-management linux-kernel driver