[英]allocate user-space memory from kernel
我正試着打電話
sys_readlink(const char __user *path, char __user *buf, int bufsiz)
直接,但獲取EFAULT錯誤代碼。 出現此錯誤是因為buf指向內核空間的內存。
那么,是否有可能從內核分配用戶空間內存?
kmalloc(size, GFP_USER)
類似於kmalloc(size, GFP_KERNEL)
並返回指向內核內存的指針。
您可以使用set_fs
臨時禁用內存地址有效性檢查
mm_segment_t old_fs;
old_fs = get_fs();
set_fs(KERNEL_DS);
/* Your syscall here */
set_fs(old_fs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.