From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id AF2C31A000D for ; Wed, 25 Jun 2014 14:00:14 +1000 (EST) Received: from /spool/local by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 25 Jun 2014 05:00:10 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id CADEC1B08041 for ; Wed, 25 Jun 2014 05:00:40 +0100 (BST) Received: from d06av10.portsmouth.uk.ibm.com (d06av10.portsmouth.uk.ibm.com [9.149.37.251]) by b06cxnps4076.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s5P4086T29950020 for ; Wed, 25 Jun 2014 04:00:08 GMT Received: from d06av10.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av10.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s5P408mi006934 for ; Tue, 24 Jun 2014 22:00:08 -0600 Message-ID: <1403668804.5842.11.camel@ThinkPad-T5421.cn.ibm.com> Subject: [PATCH powerpc] Fix parameter restoring issue in commit 752a6422f From: Li Zhong To: PowerPC email list Date: Wed, 25 Jun 2014 12:00:04 +0800 Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Cc: Paul Mackerras , Anton Blanchard , ulrich.weigand@de.ibm.com List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , In commit 752a6422f, new stack frame is created for parameters. However, the r1 is added back a little earlier, so r3 and r4 are restored from a wrong place, which could cause following error during boot: Querying for OPAL presence... there ! DEFAULT CATCH!, exception-handler=fff00700 at %SRR0: 0000000004223058 %SRR1: 8000000000081002 Open Firmware exception handler entered from non-OF code Client's Fix Pt Regs: 00 0000000004223054 0000000004223020 0000000004fbe838 0000000000000002 04 0000000028002024 0000000004fbe838 000000000427e838 0000000004222f20 08 0000000000000000 0000000000000000 0000000004222f20 0000000000001002 0c a000000000000001 0000000000000000 0000000001a3fd20 00000000040eb170 10 00000000040eb628 00000000040eb368 fffffffffffffffd 0000000001a3fd20 14 0000000001b37f00 000000000f340000 0000000000cc0000 000000000f340000 18 00000000040ebb08 0000000003580000 00000000040eb128 0000000004285920 1c 0000000001a3fd60 00000000040eb100 7c0802a6f8010010 f821ff914b91ebd1 Special Regs: %IV: 00000700 %CR: 28002022 %XER: 00000000 %DSISR: 42000000 %SRR0: 0000000004223058 %SRR1: 8000000000081002 %LR: 0000000004223054 %CTR: 0000000000000000 %DAR: 01a3fcf00020b4ac Virtual PID = 0 ok Signed-off-by: Li Zhong --- diff --git a/arch/powerpc/platforms/powernv/opal-takeover.S b/arch/powerpc/platforms/powernv/opal-takeover.S index 11a3169..9093540 100644 --- a/arch/powerpc/platforms/powernv/opal-takeover.S +++ b/arch/powerpc/platforms/powernv/opal-takeover.S @@ -5,6 +5,7 @@ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License +B * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ @@ -27,11 +28,11 @@ _GLOBAL(opal_query_takeover) li r3,H_HAL_TAKEOVER li r4,H_HAL_TAKEOVER_QUERY_MAGIC HVSC - addi r1,r1,STACKFRAMESIZE ld r10,STK_PARAM(R3)(r1) std r4,0(r10) ld r10,STK_PARAM(R4)(r1) std r5,0(r10) + addi r1,r1,STACKFRAMESIZE lwz r0,8(r1) mtcrf 0xff,r0 blr