Kernel de Linux: copy_from_user - struct con punteros

He implementado algún tipo de dispositivo de caracteres y necesito ayuda con la función copy_ from_user.

Tengo una estructura:

struct  my_struct{

int a;

int *b;
};

Lo inicializo en el espacio de usuario y paso el puntero a my_struct a mi dispositivo char utilizando la función de "escritura". En la función de 'escritura' del dispositivo de caracteres del Espacio de Kernel, lo lanzo desde un * carácter a este tipo de estructura. Asigno algo de memoria para una estructura usando kmalloc y hagocopy_from_user en ello.

Está bien para 'int a' simple, pero copia solo el puntero (dirección) del valor b, no el valor apuntado por b, por lo que ahora estoy en Kernel Space y estoy trabajando con un puntero que apunta a la memoria del espacio del usuario . Es incorrecto y no debería acceder al puntero del espacio del usuario directamente y tengo quecopy_from_user cada puntero en mi estructura y luego vuelve a copiar cada puntero en la función "leer" usandocopy_to_user ¿función?

Respuestas a la pregunta(2)

Su respuesta a la pregunta