svn commit: r212076 - head/lib/libthr/thread
David Xu
davidxu at freebsd.org
Thu Sep 2 11:36:19 UTC 2010
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.
Thanks!
More information about the svn-src-head
mailing list