信号量和等待队列需要在module_init指定的函数中初始化,在初始化之前,一定要为包含信号量和等待队列的结构体分配内存空间kmalloc,否则就会出现insmod后KILLED。

DEMO_devices = kmalloc(sizeof(struct DEMO_dev), GFP_KERNEL);

init_waitqueue_head(&DEMO_devices->wq);


Logo

更多推荐