Description of problem: ppc64 arches can crash when single setpping a debugger through syscall return code. Currently the ppc64 user stack is restored before clearing the RI bit in the MSR. Before the RI bit is cleared, traps are allowed, and if one is taken after the stack is resored, but before the RI bit is cleared, unpredictable and fatal results (oopses) can occur. Version-Release number of selected component (if applicable): all How reproducible: always Steps to Reproduce: 1. Use a hardware/jtag debugger to write software interrupt instructions (software breakpoints), to the code addresses between the instructions in entry.S where the user stack is restored and the RI bit is cleared in the syscall_exit code. 2. execute a syscall in user space. Actual results: System will crash Expected results: Breakpoint is handled, system does not crash Additional info:
Created attachment 112418 [details] patch to swap stack restore/RI clear ordering
attached patch has been accepted on rhkernel-list for RHEL4-U2.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-514.html