Hi all, Im trying to get some basics correct ... Each process created in userspace has its own kernel stack right?? And this stack is used by syscalls and interrupt handlers. My question is that in ENTRY(system_call) in entry.S .. the code does SAVE_ ALL ... all the registers are gonna get saved on the kernel stack of the process ... but when is esp changed to point to this kernel stack?? In Alessandro Rubini's document on making syscalls from kernel space, he says that the addr_limit field must be changed so that a kernel space buffer wud work with a syscall that is issued from kernel space .... How about modules .... do they have a task_struct?? .... Suppose in my init_module I make a syscall .. whose task_struct is the syscall gonna lookup?? What about kernel threads .. they have a task_struct .. is their addr_limit set to KERNEL_DS?? ... in that case if i make a syscall from a kernel thread I wont have to manipulate the addr_limit, right?? Cheers, Bijoy. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/