的实现
copy_from_user()高度依赖于体系结构。
在x86和x86-64上,它只是直接从用户空间地址进行读取并写入内核空间地址,同时如果已配置,则暂时禁用SMAP(超级用户模式访问阻止)。它的棘手部分是将
copy_from_user()代码放置在特殊区域中,以便页面错误处理程序可以识别其中何时发生错误。发生的内存保护错误
copy_from_user()不会像其他任何进程上下文代码触发的那样杀死进程,也不会像在中断上下文中发生的那样使内核感到恐慌-
它只是在代码路径中恢复执行返回
-EFAULT到呼叫者。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)