簡體   English   中英

從內核分配用戶空間內存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM