我对内核编程很陌生,目前正在使用tplink无线NIC (Atheros芯片组)的"Madwifi“驱动程序。我的内核版本是2.6.32-37 (ubuntu)。
我正在使用一个被其他人修改过的驱动程序(我不认识他们,也不能联系他们获取更多信息),我担心他们会动态地分配内存(使用kmalloc),但是没有适当地释放它。
我的问题是:
谢谢!
奥默。
发布于 2013-03-03 10:03:29
不是的。使用kmalloc (或其任何同事)分配内存后,不会增加模块的use-count。只要将地址(保存在指针变量中)传递给存储在某处的另一个模块/块,分配的内存的所有权就可以在任何时候改变。内核没有跟踪这一点。
内存的共享、分配和占用在很大程度上取决于编码体系结构和编码模型的选择。这是用C编写的;没有这样的规则。
处理模块使用计数的一种方法是使用kref。有关更多信息,请参见内核源树或这里中的文档/kre.txt。
https://stackoverflow.com/questions/15184511
复制相似问题