Re: [PATCH] x86: General protection fault after STR (32 bit systems only)

Pavel Machek
2015-06-13T14:20:17Z

On Sat 2015-06-13 00:45:29, Denys Vlasenko wrote:
> On Fri, Jun 12, 2015 at 5:48 PM, Brian Gerst <brgerst@gmail.com> wrote:
> > If you follow the convoluted flow of the calls in this file,
> > ...
>
> Speaking of which. It is indeed quite bad.
>
> For one, saved_eip is only ever set to point to ret_point:
>
> ENTRY(saved_eip) .long 0
> ...
>
> movl $ret_point, saved_eip
>
> and it has just a single user, where an indirect jump
> through it is performed:
>
> # jump to place where we left off
> movl saved_eip, %eax
> jmp *%eax
>
> No comments why it is so.
>
> All this seems to be equivalent to trivial
>
> # jump to place where we left off
> jmp ret_point
>
> Am I missing something?

I don't think so. Its just that slowdown was not bad enough tofix it.

...patch would be welcome, and even better if you could check the issue
on 64-bit kernel, too...
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html