Page MenuHomeFreeBSD

Save and restore floating point registers in get/set_mcontext().
ClosedPublic

Authored by jhb on Jan 16 2020, 10:51 PM.
Tags
None
Referenced Files
F169094128: D23218.id66926.diff
Mon, Aug 31, 9:42 AM
F169084808: D23218.id66873.diff
Mon, Aug 31, 9:08 AM
F169050419: D23218.id.diff
Mon, Aug 31, 6:18 AM
F169034161: D23218.diff
Mon, Aug 31, 4:54 AM
Unknown Object (File)
Wed, Aug 26, 11:06 PM
Unknown Object (File)
Wed, Aug 26, 11:05 PM
Unknown Object (File)
Wed, Aug 12, 3:41 AM
Unknown Object (File)
Tue, Aug 11, 7:31 AM
Subscribers

Details

Summary

arm64 and riscv were only saving and restoring floating point
registers for sendsig() and sys_sigreturn(), but not for getcontext(),
setcontext(), and swapcontext().

While here, remove a pointless check for uap being NULL from
sys_sigreturn().

Test Plan
  • booted riscv64 under spike which should exercise sendsig/sigreturn
  • have not tested arm64

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Jan 17 2020, 4:45 PM

Just curious, why does spike in particular exercise sendsig/sigreturn?

Just curious, why does spike in particular exercise sendsig/sigreturn?

I'm just assuming that booting multiuser involves catching at least one signal somewhere along the way.