Cc: Linux Kernel Mailing List <linux-kernel@...>, Thomas Gleixner <tglx@...>, Ingo Molnar <mingo@...>, Mikael Petterson <mikpe@...>, Eric Biederman <ebiederm@...>
Hmm. I'm not sure I agree with the commit message.
This is documented behaviour on i386 and i486: instruction decoding is
decoupled from execution, so things that change processor mode have to do
a jump to make sure that %cr0 changes take effect.
I'm not entirely sure that it needs to be a long-jump, btw. I think any
regular branch is sufficient. You obviously *do* need to make the long
jump later (to reload %cs in protected mode), but I'm not sure it's needed
in that place. I forget the exact rules (but they definitely were
documented).
Linus
-