Re: [PATCH] i386 - Fix regression, endless loop in ptrace singlestepover an int80

From: Jason Wessel
Date: Mon Jul 02 2007 - 18:20:27 EST


Chuck Ebbert wrote:
On 07/02/2007 04:53 PM, Jason Wessel wrote:
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.

Where does it loop?


On each single step on the pop right after the int80 which writes out to the console. At that point you can issue as many single steps as you want and it will not advance any further.

Jason.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/