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. > > there is a bug before 2.4.17-um9 or so in the uml code which i was able to > trigger > and traced enough for jdike to find the bug which was cauing the > same thing to happen what version of uml are you running ? Last time I used 2.4.17-um5, so the bug probably applies. I will try latest patch and report if it persists. -------------------------------------------------------------------------------- - 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/