- создание копии переменной в пространстве ядра Linux, dronord, 18:40 , 23-Апр-07 (1)
Может здесь нужно копировать не адреса, а данные? Т.е.
newbuf = kmalloc (sizeof(buf), GFP_KERNEL);//выделение под нее памяти memcpy (newbuf, buf, sizeof(buf)); //копирование области памяти
- создание копии переменной в пространстве ядра Linux, Michelnok, 16:53 , 28-Апр-07 (2)
>newbuf = kmalloc (sizeof(buf), GFP_KERNEL);//выделение под нее памяти >memcpy (newbuf, buf, sizeof(buf)); //копирование области памяти Конкретно для sk_buf и это тоже работать не будет, при копировании sk_buf недостаточно sizeof(struct sk_buf). Автору вопроса - должны быть специальные функции для создания копий sk_buf, посмотрите внимательно в заголовочном файле. Ну а Ваш код совершенно некоректен. Вы копируете в указатель на структуру первые 4 байта (или 8, если размер указателя 64 бита) из структуры. В лучшем случае будет утечка (memcpy затирает результат kmalloc), в худшем Вы пойдете по мусору, попытавшись обратиться по new_buf->somefield, со всеми вытекающими последствиями...
|