copy_from_user()对于intel x-86处理器失败,但对ppc e500处理器执行正常

时间:2014-09-02 06:09:44

标签: linux-kernel kernel linux-device-driver ioctl

我正在开发Linux内核空间和内核空间通信,

我正在使用两块目标板, 1)板与PPC -e500处理器 2)使用intel x-86处理器的电路板

在e500处理器上运行的代码安静之后,相同的代码在IOCTL调用执行后给出了内核错误

*error: returning IOCTL -1073460967 ERROR as -EFAULT, kernel error: 28*     

 //User space call
 retVal = ioctl( FD, SOME_OPERATION, &myInfo );

//结构的定义

struct user_space_struct
{
   unsigned long A;
   unsigned long B;  //file descriptor
   unsigned long C;
   unsigned long D;
   unsigned long E;
   unsigned long F;
   unsigned long G;
};



ret = copy_from_user( (void *)&kernel_space_struct,(void *)arg, sizeof(struct    user_space_struct) );

//内核空间调用

    if( ret != 0 ) {
        printk("In Kernel space copy_from_user() failed \n");
        break;
    }

任何人都可以帮助我理解为什么我会收到此错误。

提前致谢!

0 个答案:

没有答案