我在内核模块中有以下代码行。 KFREE行导致操作系统挂起。没有它,KEDR会报告内存泄漏。那么如何释放p?
char * p = KMALLOC(100, GFP_ATOMIC);
p = dentry_path_raw(dentry, p, 100) ;
printk(KERN_EMERG " %s" , p);
KFREE(p);
KFREE的定义如下:
# define KFREE(a) kfree((a))
KMALLOC定义如下:
# define KMALLOC(a,b) kmalloc((a),(b))