summaryrefslogtreecommitdiff
path: root/arch/x86_64/boot
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-07-11 23:18:33 +0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-12 21:55:54 +0400
commit85414b693ac037d709582a167a330db3a5d186d8 (patch)
tree78836556d59e28c335d2ba5be347c06f4298432e /arch/x86_64/boot
parent1d67953f2bda8876045c24ae58841f27d9bb7572 (diff)
downloadlinux-85414b693ac037d709582a167a330db3a5d186d8.tar.xz
Define zero-page offset 0x1e4 as a scratch field, and use it
The relocatable kernel code needs a scratch field for the decompressor to determine its own location. It was using a location inside struct screen_info; reserve a free location and document it as scratch instead. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86_64/boot')
-rw-r--r--arch/x86_64/boot/compressed/head.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86_64/boot/compressed/head.S b/arch/x86_64/boot/compressed/head.S
index f9d5692a0106..1312bfaff306 100644
--- a/arch/x86_64/boot/compressed/head.S
+++ b/arch/x86_64/boot/compressed/head.S
@@ -46,10 +46,10 @@ startup_32:
* at and where we were actually loaded at. This can only be done
* with a short local call on x86. Nothing else will tell us what
* address we are running at. The reserved chunk of the real-mode
- * data at 0x34-0x3f are used as the stack for this calculation.
- * Only 4 bytes are needed.
+ * data at 0x1e4 (defined as a scratch field) are used as the stack
+ * for this calculation. Only 4 bytes are needed.
*/
- leal 0x40(%esi), %esp
+ leal (0x1e4+4)(%esi), %esp
call 1f
1: popl %ebp
subl $1b, %ebp