[S390] hibernate: Use correct place for CPU address in lowcore
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Tue, 6 Oct 2009 08:34:12 +0000 (10:34 +0200)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Tue, 6 Oct 2009 08:35:10 +0000 (10:35 +0200)
We used address 0x1084 instead of 0x84 to store the suspend CPU address.
With this patch we use the correct address 0x84 as it is defined in
the POP.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/swsusp_asm64.S

index 008e35a..7c8653e 100644 (file)
@@ -43,7 +43,7 @@ swsusp_arch_suspend:
        lghi    %r1,0x1000
 
        /* Save CPU address */
-       stap    __LC_CPU_ADDRESS(%r1)
+       stap    __LC_CPU_ADDRESS(%r0)
 
        /* Store registers */
        mvc     0x318(4,%r1),__SF_EMPTY(%r15)   /* move prefix to lowcore */
@@ -172,8 +172,7 @@ pgm_check_entry:
        larl    %r1,.Lresume_cpu                /* Resume CPU address: r2 */
        stap    0(%r1)
        llgh    %r2,0(%r1)
-       lghi    %r3,0x1000
-       llgh    %r1,__LC_CPU_ADDRESS(%r3)       /* Suspend CPU address: r1 */
+       llgh    %r1,__LC_CPU_ADDRESS(%r0)       /* Suspend CPU address: r1 */
        cgr     %r1,%r2
        je      restore_registers               /* r1 = r2 -> nothing to do */
        larl    %r4,.Lrestart_suspend_psw       /* Set new restart PSW */