Hi, I've got a followning problem. I am trying to start a kernel thread. I do this by calling kernel_thread from module's init function with CLONE_VM|CLONE_FS|CLONE_FILES. (The same are used several times in kernel, CLONE_VM is always added inside anyway). Then the thread calls daemonize(). It works, except that after second ps I get a BUG in mmdrop, that is a check for destroying init_mm. The problem seems to be, that while kernel_thread() references the mm of current process (insmod), the thread starts whith mm == &init_mm. And exit_mm in daemonize is called on this, breaking it's ref-count. I test this on the user-mode port. I am not able to trace down where the memory map gets changet. Please, tell me what should I look for. -------------------------------------------------------------------------------- - Jan Hudec `Bulb' <bulb@ucw.cz> -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/