I found the problem two weeks ago, but I can not find a better way to avoid userret() to be called twice. so I keep silence. :(
David Xu Gartner: Apache is vulnerable, we recommend switching back to IIS to protect yourselves ----- Original Message ----- From: "Julian Elischer" <[EMAIL PROTECTED]> To: "FreeBSD current users" <[EMAIL PROTECTED]> Sent: Tuesday, July 09, 2002 2:40 PM Subject: userret() , ast() and the end of syscalls > > A question to those who know.. > > why is userret() called both at the end of trap() or syscall() > and also almost immediatly again (often) at the end of ast(). > > It seems that really there is no one place that one can put code that will > be called ONCE and ONLY ONCE as a thread progresses to userland. > > There is no one place where you can say "after this point we are in > userland" right up until that iret instruction. There is always the danger > that FTER ny insruction that decides that we are now definitly going to > user space, there could occur an interrupt that causes a reschedule so > that some OTHER thread goes to user land. > > Is it possible to clear interrupts and have the iret instruction > itself re-enable them? > (that would give a few instructions 'atomically' with the iret > which may be all I need). > > is this possible in other architectures? > > > > To Unsubscribe: send mail to [EMAIL PROTECTED] > with "unsubscribe freebsd-current" in the body of the message To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message