Page MenuHomeFreeBSD

PPC64: fix TOC behavior on process initialization
ClosedPublic

Authored by wma on Jan 17 2018, 10:09 AM.
Tags
None
Referenced Files
Unknown Object (File)
Nov 16 2023, 7:42 AM
Unknown Object (File)
Oct 23 2023, 8:27 AM
Unknown Object (File)
Oct 3 2023, 11:33 AM
Unknown Object (File)
Aug 5 2023, 2:04 PM
Unknown Object (File)
Jan 7 2023, 5:48 AM
Unknown Object (File)
Jan 3 2023, 8:52 PM
Unknown Object (File)
Dec 14 2022, 11:04 PM
Subscribers

Details

Summary

Set stack pointer to correct value after thread's stack pointer restore

Restoring new thread's stack pointer caused stack corruption because
restored stack pointer didn't point to callee (cpu_switch) stack frame but
caller stack frame.

As a result we had mysterious errors in caller function (sched_switch).

Solution: simply set stack pointer to correct value

Also, initialize TOC to a valid pointer once the thread is being
created.

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 2018, 3:33 PM
This revision was automatically updated to reflect the committed changes.