Attached is a patch with a complete test case to fix the regression introduced by the commit: 635cf99a80f4ebee59d70eb64bb85ce829e4591f.
This patch is against kernel 2.6.21 but the fix is applicable to 2.6.21 and up. Prior to the commit that introduced the regression the ltp ptrace tests would complete correctly. I augmented the test case from the original patch header to include the problem case that shows up in the lpt tests.
The brief summary is that the the TIF_SINGLESTEP state needs to be altered on the exit path and not the entry path to a syscall, else it can loop forever on the same instruction right after the syscall is executed in certain cases.