免费注册 查看新帖 |

Chinaunix

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

[内核模块] 求助vfs_read返回-EFAULT的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-21 12:19 |只看该作者 |倒序浏览
本帖最后由 零度x 于 2015-09-21 12:22 编辑
  1. char* read_file(char* file_name)
  2. {
  3.         struct file *file;
  4.         int size;
  5.         char* data;
  6.         char* ret;
  7.         loff_t pos;
  8.         mm_segment_t old_fs;
  9.         int ret_size;
  10.         ret = NULL;

  11.         old_fs = get_fs();
  12.         set_fs(KERNEL_DS);
  13.        
  14.         file = filp_open(file_name, O_RDONLY, 0);
  15.         if (!IS_ERR(file))
  16.         {
  17.                 size = file->f_dentry->d_inode->i_size;
  18.                 data = vmalloc(size);
  19.                 if (data)
  20.                 {
  21.                         memset(data, 0, size);
  22.                         pos = 0;
  23.                         ret_size = vfs_read(file, data, size, &pos);
  24.                         if (size == ret_size)
  25.                         {
  26.                                 printk("vfs_read success!\n");
  27.                                 ret = data;
  28.                         }
  29.                         else
  30.                         {
  31.                                 printk("error vfs_read ret : %d\n", ret_size);
  32.                                 vfree(data);
  33.                                 data = NULL;
  34.                         }
  35.                 }

  36.                 filp_close(file, NULL);
  37.         }
  38.         ret = data;
  39.         set_fs(old_fs);
  40.         return ret;
  41. }
复制代码
我调用这段代码,每次vfs_read都返回-EFAULT(-14)
求助,怎么解决这个问题啊

论坛徽章:
0
2 [报告]
发表于 2015-09-21 13:04 |只看该作者
在我机器上面是可以的
放到服务器上面出现的这个问题
编译是在服务器上面编译的

论坛徽章:
0
3 [报告]
发表于 2015-09-21 15:52 |只看该作者
我找到原因了,因为服务器上面内核版本和内核源码版本不一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP