From: "Ahmed S. Darwish" <darwish.07@gmail.com> To: linux-kernel@vger.kernel.org Subject: i386: Why putting __USER_DS in kernel threads stack initialization? Date: Mon, 19 Mar 2007 00:58:31 +0200 Message-ID: <20070318225831.GB3802@Ahmed> (raw) Hi list, Reading the kernel threads initialization code I see: int kernel_thread(...) { struct pt_regs regs; memset(®s, 0, sizeof(regs)); [...] ** regs.xds = __USER_DS; ** regs.xes = __USER_DS; [...] /* Ok, create the new process.. */ return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, \ 0, NULL, NULL); Continuing with the code, the threads stack (beginning from %esp) is initialized with the passed *regs from do_fork: int copy_thread(..., struct task_struct *p, struct pt_regs *regs) { struct pt_regs * childregs; struct task_struct *tsk; childregs = task_pt_regs(p); ** *childregs = *regs; [...] ** p->thread.esp = (unsigned long) childregs; So the question is what will a _kernel_ thread do with the Usermode Segment address ? Thanks, P.S. I've tried commenting out both lines which led to a non functional init, Also setting them to __USER_DS made init start but stopped issuing the error: `Panic: Segment violation at 0x8049798 - Sleeping for 30 seconds' -- Ahmed S. Darwish http://darwish.07.googlepages.com
next reply index Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-03-18 22:58 Ahmed S. Darwish [this message] 2007-03-18 23:15 ` Ahmed S. Darwish 2007-03-19 11:23 ` linux-os (Dick Johnson) 2007-03-21 19:25 ` Ahmed S. Darwish
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20070318225831.GB3802@Ahmed \ --to=darwish.07@gmail.com \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lkml.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lkml.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lkml.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lkml.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lkml.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lkml.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lkml.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lkml.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lkml.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lkml.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lkml.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git