diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-03-26 10:24:57 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-03-26 10:24:32 -0400 |
commit | c70d0fef1da286d7f96e774674aea2d20cf6222f (patch) | |
tree | 5de8684b043633acb46f81fc14f91aeb070bf851 /arch/s390/kernel/reipl64.S | |
parent | 488253ce49714f4e9d42413c1d60b7724059a338 (diff) |
[S390] fix clock comparator save area usage
The lowcore clock comparator save area on 64 bit machines is defined to
contain only the seven most significant bits of the register.
That's also why it starts at an uneven address (0x1331).
The current code however writes eight bytes to the address and
therefore overwrites the first byte of the access register save area.
Fix this and write only seven bytes to the save area.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/reipl64.S')
-rw-r--r-- | arch/s390/kernel/reipl64.S | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/s390/kernel/reipl64.S b/arch/s390/kernel/reipl64.S index c41930499a5f..774147824c3d 100644 --- a/arch/s390/kernel/reipl64.S +++ b/arch/s390/kernel/reipl64.S | |||
@@ -1,10 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/reipl.S | 2 | * Copyright IBM Corp 2000,2009 |
3 | * | 3 | * Author(s): Holger Smolinski <Holger.Smolinski@de.ibm.com>, |
4 | * S390 version | 4 | * Denis Joseph Barrow, |
5 | * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
6 | * Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com) | ||
7 | Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | ||
8 | */ | 5 | */ |
9 | 6 | ||
10 | #include <asm/lowcore.h> | 7 | #include <asm/lowcore.h> |
@@ -30,7 +27,7 @@ do_reipl_asm: basr %r13,0 | |||
30 | mvc __LC_PREFIX_SAVE_AREA-0x1000(4,%r1),0(%r10) | 27 | mvc __LC_PREFIX_SAVE_AREA-0x1000(4,%r1),0(%r10) |
31 | stfpc __LC_FP_CREG_SAVE_AREA-0x1000(%r1) | 28 | stfpc __LC_FP_CREG_SAVE_AREA-0x1000(%r1) |
32 | stckc .Lclkcmp-.Lpg0(%r13) | 29 | stckc .Lclkcmp-.Lpg0(%r13) |
33 | mvc __LC_CLOCK_COMP_SAVE_AREA-0x1000(8,%r1),.Lclkcmp-.Lpg0(%r13) | 30 | mvc __LC_CLOCK_COMP_SAVE_AREA-0x1000(7,%r1),.Lclkcmp-.Lpg0(%r13) |
34 | stpt __LC_CPU_TIMER_SAVE_AREA-0x1000(%r1) | 31 | stpt __LC_CPU_TIMER_SAVE_AREA-0x1000(%r1) |
35 | stg %r13, __LC_PSW_SAVE_AREA-0x1000+8(%r1) | 32 | stg %r13, __LC_PSW_SAVE_AREA-0x1000+8(%r1) |
36 | 33 | ||