John Baldwin wrote:
On Thursday, September 02, 2010 7:36:08 am David Xu wrote:
John Baldwin wrote:
On Thursday, September 02, 2010 6:22:18 am Kostik Belousov wrote:
On Thu, Sep 02, 2010 at 05:35:39PM +0000, David Xu wrote:
Kostik Belousov wrote:

the tf_err may not be equal to ksi_addr! This may need to be fixed.

The change was introduced by
r151316 | davidxu | 2005-10-14
     /* Old FreeBSD-style arguments. */
-     sf.sf_siginfo = code;
-     sf.sf_addr = regs->tf_err;
+     sf.sf_siginfo = ksi->ksi_code;
+     sf.sf_addr = (register_t)ksi->ksi_addr;
     sf.sf_ahu.sf_handler = catcher;

:(
The rollback looks straightforward. I explicitely decided to not change
any architecture that is not i386.
It may not be this simple. At one point we had a "feature" where we
trashed
tf_err in the trapframe to store the address so it could be passed to
sendsig
for this purpose. I think once we started using ksi_addr here we removed
the
trashing of tf_err as it was no longer necessary.

I saw RELENG_5 saved it at td_md.md_fault_address, but I really can not remember
which version has such "feature". ;-)
By the way, I still can not find a modern program uses this old style and wants to
know the exact fault address.
Kostik Belousov fixed the error I had made when I was implementing signal queue.

See revision 170688 for example:

r170688 | jhb | 2007-06-13 18:37:48 -0400 (Wed, 13 Jun 2007) | 6 lines

Don't clobber tf_err with the eva from a page fault as the page fault
address is saved in ksi_addr already.

PR:             i386/101379
Submitted by:   Tijl Coosemans : tijl ulyssis org

Index: trap.c
===================================================================
--- trap.c      (revision 170687)
+++ trap.c      (revision 170688)
@@ -785,9 +785,6 @@
                return (-1);
        }
- /* kludge to pass faulting virtual address to sendsig */
-       frame->tf_err = eva;
-
        return((rv == KERN_PROTECTION_FAILURE) ? SIGBUS : SIGSEGV);
 }

Given that, I think the existing code is correct and that there is no bug to be fixed.

Thanks for clarifying, I am really confused when Kostik Belousov mailed me,
I wish I had not made the mistake, after all it was 4 years 10 months ago, so I
can not remember exactly what had happened at that time.

_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to