Является ли copy_to_user необходимым с procfs? - PullRequest
2 голосов
/ 03 апреля 2012

Я всегда думал, что copy_to_user необходимо, когда ядро ​​пишет пользователям через procfs.

Я забыл сделать это один раз (хотя я использовал snprintf), и все работало нормально. Теперь, когда я это заметил, я искал. Я нашел эту ссылку , которая не говорит, что copy_to_user необходима, хотя для другого раздела (чтение ядра пользователем) она говорит, что copy_from_user необходима.

Итак, предоставлен ли буфер модулю ядра для записи данных (так что пользователь читает из него), уже в пространстве ядра? Правда ли, что вам не нужно copy_to_user при записи через procfs? Или мне повезло, что я не потерпел крах?

1 Ответ

2 голосов
/ 03 апреля 2012

Всегда используйте copy_from_user и copy_to_user при работе с указателями пространства пользователя. Даже если простой memcpy иногда работает для вас, существуют ситуации, когда он может потерпеть неудачу. См. эту ветку для информации.

Говоря о procfs, необходимо учитывать, что он использует небольшую хитрость с предварительным распределением памяти ядра. Подробнее см. эту ссылку.

...