system call doubt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux