Я пытаюсь использовать эту функцию для копирования буфера от пользователя к одному в ядре. были выделены оба буфера. Я использую while
в случае, если не все байты были скопированы с первой попытки. но по какой-то причине ничего не копируется, и программа застревает в цикле while. Каковы могут быть причины этого?Проблема с copy_from_user в ядре
void my_copy_from_user(const char* source_buff, char* dest_buff, int size_to_copy){
int not_copied = size_to_copy
int left = size_to_copy;
while(not_copied){
not_copied = copy_from_user(dest_buff, source_buff, left);
dest_buff += (left - not_copied);
source_buff += (left - not_copied);
left = not_copied;
}
}
Информация в ссылке выглядит полезной, но, пожалуйста, вставьте соответствующий код здесь, если ссылка будет нарушена в будущем, и поэтому ваш ответ будет более полным. – djv