我正在开发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;
}
任何人都可以帮助我理解为什么我会收到此错误。
提前致谢!