如何释放cdev_alloc分配的内存?

时间:2016-03-23 07:19:54

标签: memory linux-kernel linux-device-driver

“LDD3,第3章”告诉我们,我们可以在运行时分配struct cdev结构,如下所示:

struct cdev *cdev_ptr = cdev_alloc();

但是我不知道如何释放这个内存,因为cdev_del()似乎没有释放kzmalloc()cdev_alloc()分配的内存。

1 个答案:

答案 0 :(得分:2)

呼叫RAW_LOG_DIR=/var/cache/logs/recent_log.txt OUTPUT_DIR=/var/cache/logs/output for LOG in $RAW_LOG_DIR; do zcat -f ${RAW_LOG_DIR} | head -n5 > OUTPUT_DIR done 将免费cdev_del()cdev创建,自动

根据implementationcdev_alloc()注册内部kobject的特殊回调。当对象的引用计数降为零并且它释放分配的内存时,将调用此回调。

此外,description for cdev_del说:

  

/ **
      * cdev_del() - 从系统中删除cdev
      * @p:要删除的cdev结构
      *
      * cdev_del()从系统中删除@p,可能释放结构
      * 本身。
      * /