Messages in this thread | | | From | (H. Peter Anvin) | Subject | BOOT_CS | Date | Sat, 21 Feb 2004 05:47:29 +0000 (UTC) |
| |
Anyone happen to know of any legitimate reason not to reload %cs in head.S? I think the following would be a lot cleaner, as well as a lot safer (the jump and indirect branch aren't guaranteed to have the proper effects, although technically neither should be required due to the %cr0 write):
@@ -117,10 +147,7 @@ movl %cr0,%eax orl $0x80000000,%eax 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 */ + ljmp $__BOOT_CS,$1f /* Clear prefetch and normalize %eip */ 1: /* Set up the stack pointer */ lss stack_start,%esp
I've been doing some cleanups in head.S after making the early page tables dynamic.
-hpa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |