[PATCH] Remove the extra jmp

Coywolf Qi Hunt
2004-02-24T03:12:47Z

[-- Attachment #1: Type: text/plain, Size: 881 bytes --]

Jamie Lokier wrote:
>
> Your patch uses two instructions to flush the queue (push+ret) instead
> of one (jmp or ljmp). Is that documented as reliable? I can easily
> imagine an implementation which decodes one instruction after a mode
> change predictably, but not two.
>
> I doubt that it makes a difference - we're setting PG, not changing
> the instruction format - but I'd like us to be sure it cannot fail on
> things like 386s and 486s, and similar non-Intel chips.

push+ret is encouraged/borrowed/stolen from FreeBSD ;) it should be
reliable. And also, old linux uses ret. Since old linux runs on 386, it
is quite reliable. If you still doubt, we can push before PG.

Hello Anvin,

Please either take the push+ret patch or take the one near jmp patch
enclosed in this email. thanks

Coywolf

--
Coywolf Qi Hunt
Admin of http://GreatCN.org and http://LoveCN.org

[-- Attachment #2: patch-cy0402240-2.6.3 --]
[-- Type: text/plain, Size: 339 bytes --]

--- head.S.orig 2004-02-18 11:57:16.000000000 +0800
+++ head.S 2004-02-24 11:08:34.000000000 +0800
@@ -117,9 +117,6 @@
movl %eax,%cr0 /* ..and set paging (PG) bit */
jmp 1f /* flush the prefetch-queue */
1:
- movl $1f,%eax
- jmp *%eax /* make sure eip is relocated */
-1:
/* Set up the stack pointer */
lss stack_start,%esp