linux-device-driver – add_disk()在insmod上挂起

前端之家收集整理的这篇文章主要介绍了linux-device-driver – add_disk()在insmod上挂起前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个 Linux块设备驱动程序,我有很多初始化工作.但是,当我最终调用add_disk()时,模块在insmod期间挂起.

有问题的片段在这里:

set_capacity(gendisk,dev->nsectors);
add_disk(gendisk);

//this line is never reached

解决方法

这似乎是在添加磁盘之前使用set_capacity()设置容量引起的.根据 this mailing list,应该在gendisk-> capacity = 0的gendisk上调用add_disk,否则它会在check_partition()中挂起.

以下似乎有效:

set_capacity(gendisk,0)
add_disk(gendisk);
set_capacity(gendisk,dev->nsectors);

猜你在找的Linux相关文章