Hi All: I was poring over the arch/x86/process_32.c:kernel_thread()
code. Apparently (and surprisingly) it sets the kernel threads ds and es register
to __USER_DS. I saw a very old thread on the kernel newbies on this, but I did
not quite find a convincing reason in that thread. Any idea why this is done?
Is it because fork() expects to create user level threads? If that is so, where
and how is this changed to point to KERNEL_DS? Any help will be really appreciated. Ani |