Jądro Linuksa: copy_from_user - struct ze wskaźnikami

Zaimplementowałem jakiś rodzaj urządzenia znakowego i potrzebuję pomocy z funkcją copy_ from_user.

Mam strukturę:

struct  my_struct{

int a;

int *b;
};

Inicjalizuję go w przestrzeni użytkownika i przekazuję wskaźnik do my_struct do mojego urządzenia char przy użyciu funkcji 'write'. W funkcji „write” urządzenia Kernel's Space znak rzucam go z char * do tego rodzaju struktury. Przydzielam trochę pamięci dla struktury używającej kmalloc i docopy_from_user w tym.

Jest to dobre dla prostego 'int a', ale kopiuje tylko wskaźnik (adres) wartości b, a nie wartość wskazywaną przez b, więc jestem teraz w przestrzeni jądra i pracuję ze wskaźnikiem wskazującym na pamięć przestrzeni użytkownika . Czy to niepoprawne i nie powinienem mieć bezpośredniego dostępu do wskaźnika przestrzeni użytkownika i muszęcopy_from_user każdy pojedynczy wskaźnik w mojej strukturze, a następnie skopiuj z powrotem każdy wskaźnik w funkcji „czytaj”, używająccopy_to_user funkcjonować?

questionAnswers(2)

yourAnswerToTheQuestion