免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2285 | 回复: 0
打印 上一主题 下一主题

块设备驱动开发,加载模块死机 [复制链接]

论坛徽章:
1
双子座
日期:2014-01-24 10:23:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-24 14:47 |只看该作者 |倒序浏览
  1. static  struct gendisk *my_disk;
  2. struct request_queue *my_disk_queue;

  3. static void my_disk_queue_request(struct request_queue_t *q)
  4. {
  5.         struct request *req;
  6.         while((req = blk_fetch_request(q)) != NULL){

  7.                 if(req->cmd_type != REQ_TYPE_FS){
  8.                         printk(KERN_NOTICE "Skip non-fs request\n");
  9.                 //      blk_start_request(req);
  10.                         blk_end_request_all(req,-EIO);
  11.                         continue;
  12.                 }

  13. //              blk_transfer(req->se);
  14.                 if(!blk_end_request_cur(req,0)){
  15.                         req = NULL;
  16.                 }
  17.         }
  18. }

  19. static struct block_device_operations fops = {
  20.         .owner = THIS_MODULE,
  21.         };

  22. static int __init t_init(void){
  23.                 my_disk = alloc_disk(1);
  24.                register_blkdev(555,"wuyi");
  25.                my_disk_queue = blk_init_queue(my_disk_queue_request,NULL);

  26.               my_disk->major = 555;
  27.               my_disk->first_minor = 0;
  28.               my_disk->fops = &fops;
  29.               my_disk->queue = my_disk_queue;
  30.                 set_capacity(my_disk,1024);

  31.         add_disk(my_disk);
  32.         printk("helloworld\n");
  33.         return 0;
  34. }

  35. void t_exit(void){
  36.        printk("byebye\n");
  37.          del_gendisk(my_disk);
  38.         put_disk(my_disk);
  39.         blk_cleanup_queue(my_disk->queue);
  40.         unregister_blkdev(555,"wuyi");
  41. }
复制代码
我已经把代码最简化了,还是出问题。能够正常通过编译,但加载.ko文件的时候就死机。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP