From patchwork Wed Oct 7 03:48:14 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Scott Wood X-Patchwork-Id: 527108 X-Patchwork-Delegate: scottwood@freescale.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 086E0140D72 for ; Wed, 7 Oct 2015 15:01:41 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id E2F4C1A047B for ; Wed, 7 Oct 2015 15:01:40 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0134.outbound.protection.outlook.com [157.56.110.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 5B7521A0155 for ; Wed, 7 Oct 2015 14:48:50 +1100 (AEDT) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=scottwood@freescale.com; Received: from snotra.am.freescale.net (192.88.168.49) by BY1PR03MB1483.namprd03.prod.outlook.com (10.162.210.141) with Microsoft SMTP Server (TLS) id 15.1.286.20; Wed, 7 Oct 2015 03:48:45 +0000 From: Scott Wood To: Subject: [PATCH v2 10/18] powerpc/booke64: Fix args to copy_and_flush Date: Tue, 6 Oct 2015 22:48:14 -0500 Message-ID: <1444189702-17241-11-git-send-email-scottwood@freescale.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1444189702-17241-1-git-send-email-scottwood@freescale.com> References: <1444189702-17241-1-git-send-email-scottwood@freescale.com> MIME-Version: 1.0 X-Originating-IP: [192.88.168.49] X-ClientProxiedBy: BLUPR08CA0034.namprd08.prod.outlook.com (10.141.200.14) To BY1PR03MB1483.namprd03.prod.outlook.com (25.162.210.141) X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1483; 2:8vEDz63iXXKcAF1Boh7yFLEy1DtQDFZs6iyC+6g2MoCmlNSwddpScJRla1QXxieJQkjZHcu0hmyHat3uMcdnXB6hyVGzYDgnT1j0QvpG+odccqh3xe/Ofye9+KiVBvIYvw4MUNGTnnwbwFVIV/9b0k3CXxXRyImCHpHEWQ6uB78=; 3:MqAVFGY74eq6w5ueGWfff2vUgosYjlDkndSdIc0UA+Optem9AisN0X+GzrdERlrDzU8Ru0E+X+WC/vWxJMZkTSZ1jToIlOU6d9ikxR/5gmm1Ckb1CX3+vPaTBN3IQI2Tck5TPVjDd6B3cuMjRhTnZg==; 25:1x4Cf6BFNjmJXSZ1K5G4jH38R10EgJfX8CPwbRTuexxR9xRGFeR9LPJ4XtI02tojM7GI3VKOpQuBvPABaRCrUdhCQB+tuiUUAqF2ZnU+hAcCgQo/FgXZ3sawSsMMr4USelgG9x33/xUsKYECGIqJovqzYxRnmBy+pzhPnZVoppDcuGltzegJYp1wy5izbCn/Pd2MeNeEQHClKoJ/qqFnhS4qzJsyDnBRFqPStgv6UG6GcOyJxmriDLYTVMJSUaIw X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR03MB1483; X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1483; 20:fakG0HV/c0WTCmOuKn9QUa8fb2HE3Vh3UjCnISk642egqyqLIlYI8i3iUvri4+5O9lAdxo0UJLmEsJbymROPFtxEwF6G86PciKua2vP7nAgtD50HtSYEZPAm8ykPGKjnEpZydLnvJ80HyIB2/L9L39VqcgcvG4T021cGeDklOTlF8cb+9oeMYBKG9fgKzeoYud/aibaJ+s/0KEVqfMUgfiTZmERbS3QeT06aWrMfyIzGMpb7loupIys+CoB1mgxGkslykQ9ptL/v3tralO0TPvDuy72TYgAonfOoeR1A6181sReVvHm49Na/4fiB+3e5PGK8IUqON/TlqzinpvxmbiuRzc1SCa71dvli5C+YQzVlkzOAl77guaIlFSbDu7HwhOrDS6zfhV5m9QWsg4qs76eOsD+rubdMVq/xK7g7XG/dBRWeAwYKcGUwphyzWNJTtPej2pv6XS4JQcaFH41pAcsyLRKzWMLNwJSKG9MeqDMXtOTB7iKmOtbcdw1o9E1I; 4:fn1FEa+A76Ti/n/zbxVKTxqE+PcIIpFUGVg9DXXeX2REGQJqnHazig2EbU88QD/ZW/agZqhlkzGbr0Shfup8jPFm/yR3y7vsMJTbEg5wgS3pN8PZ5COf/JWyoWQMCbP03NUyX1bAjA5kY8HT+B83ZV+qdf69ArCdQ/3/UMKzGLhF/8mhF4fCdKc0EGo/NnZB0Ve6JBezR2RgX8WCO9bevFYhrtxq7V/b+F0FV1CNS6pnAEC8qH/s2Glk46F1jJ18oX4PmKRFiGEBvZvPshiVDR6vwMxzKHdih4zGNi+8VEXLY0IIUqF0RRGFWlSC7t6m+CD4ARqCvsZ3PrKYGxrttb7+uHa+KOcmfHViiejNFDI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001); SRVR:BY1PR03MB1483; BCL:0; PCL:0; RULEID:; SRVR:BY1PR03MB1483; X-Forefront-PRVS: 0722981D2A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(54534003)(189002)(122386002)(19580395003)(5007970100001)(5003940100001)(189998001)(19580405001)(107886002)(105586002)(46102003)(106356001)(50466002)(77096005)(40100003)(2351001)(110136002)(575784001)(50986999)(64706001)(42186005)(87976001)(86362001)(5004730100002)(47776003)(5001960100002)(76176999)(229853001)(101416001)(50226001)(92566002)(5008740100001)(2950100001)(66066001)(33646002)(36756003)(81156007)(5001920100001)(97736004)(48376002)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR03MB1483; H:snotra.am.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: freescale.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR03MB1483; 23:ZwcOQfysMBCHDMMVuZbHgbIZFh2nx/pVd5fyRO4RR?= =?us-ascii?Q?80fFtoLq2FAqRYI4zgDLyjdyQf2dz/L8shX+rLTLqw2iZr1Rb7XLWItB8cR9?= =?us-ascii?Q?Q8ZFgerUkmlbSO05OvamkhQx8s4zD/oR//JqwpuUcERMMf11QVrBlOfSzit1?= =?us-ascii?Q?4xl0HJzzSBw0Qtnq49a29QLRJhTdf/AU4jZPuPj6MpV9TG/lJ5pUjaKfMrw7?= =?us-ascii?Q?/37tVg2G2zcaBrieUw2ab1oY1tPTC8IOWm0DeGcc7pg7Wyzo1k6DINtGTj7K?= =?us-ascii?Q?HR5zqcDGdzGFaAqu7WWtI4lkW8tB8Vqv2X8/FbN3HLu1KmHY441EYu3dy7oX?= =?us-ascii?Q?+xCY21a+zDFqiCDOIZDkj44oVbxrfb/ptWUBEDQ5NxDoEqRJxCoihtjAMHb1?= =?us-ascii?Q?IdsyfVRDTxGoJHsXEwKyUyirwv8S34wSU4HCP9PiZJq9NLG7sgs+FivGUDaf?= =?us-ascii?Q?P7KbOAkFyi420fmeV3lZExhtl99ykH7+YiU2wWwRqCAXiFhMpReyDuVyberI?= =?us-ascii?Q?ijEZrP5iDWSV8dfn8ee3/tlPmAvpzRVni86VMoEkbXRmgVddQfnyMD+OUXWK?= =?us-ascii?Q?AK0EdaY2+OeGYSwUJuaFuivSYPZVIGUVnKNyDbn6Rem85PnzLw6U278MUpoD?= =?us-ascii?Q?BKGVFJRCqNbEx9R8awBagRskgAidI/kgqBjbdQirCuWA/9BBTgZHCIfbGdZR?= =?us-ascii?Q?N/kSQ36v0oLxNOR8Kg6flSPUbVW1HWwRYZHmYbzjTS4hABPt15ehR4Gk5IoU?= =?us-ascii?Q?MBTqUmvrGQRXqGoaMwVP/NrTleG7K8ZvfYshNkhXrIZgJ0nFRbjGXQgzAUOV?= =?us-ascii?Q?Oav2/ECD3/x1xBJTWrY1QXI7Kp97MQLHmdV/1nQEcqjPbu3uv+BtBm55WU4/?= =?us-ascii?Q?miX7dQiHM+23sxmWxJDp/TTNLPBHPXiAOSxJ4eeyV4UMq2qGFl27GoBqF8Q3?= =?us-ascii?Q?GY4qTXlOs3dCqUodBC06nrEUmChMIOSwNeyedAg/EK2kuTbfYKtnv83bJmR/?= =?us-ascii?Q?DQFXsjr5swJ56YqkqI12KmBRLSE6XigEkmuYyyUSyKg38vg55yQ7r85qS2PS?= =?us-ascii?Q?kspyW/McwfwjySrtCDjZFbeFfDRpZ6qkwuaJfD2+CG3dgzPQSxm89Kkua57Y?= =?us-ascii?Q?wcGuyyGfQgECCupz3f0cLp4G3529HAuEn3oUdreWzDAVwZSEQe0iX2FrMOfQ?= =?us-ascii?Q?00L6FmtWip8pF4=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1483; 5:dK6jCprxZYUhHM37gvytHdZ2HwvqcGtHg55AW8bWttSgJDwu7TalUT7bYqVGbXQT0AJ0dhapFNs07nPIpkTG28z8K7PtS7eJ4oStSrlncsGFt87ObSY5gfKK0b/bJ0CRZzW5RHaHHGpfH81BtOmFug==; 24:vur6MvKduohEpHGTOwP1ysNsGIFuhX+GkqyV1FW5JDbqLhYGT9eiTsyVcd3d15Xy2xAT2VJk2ZMqA/KKNGWghLrfvVwf5U03CTPYYGFyq2o=; 20:4ncJyYh4oi2Ir/m6Fs9ctG41biPHS+pQ5loqKug5c0Sbpc5xvnqBUZ0sTeVoIO+Ns+blazI8ljXixYNremkh+g== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2015 03:48:45.9667 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB1483 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tiejun Chen , Tiejun Chen , kexec@lists.infradead.org, Scott Wood Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" From: Tiejun Chen Convert r4/r5, not r6, to a virtual address when calling copy_and_flush. Otherwise, r3 is already virtual, and copy_to_flush tries to access r3+r6, PAGE_OFFSET gets added twice. This isn't normally seen because on book3e we normally enter with the kernel at zero and thus skip copy_to_flush -- but it will be needed for kexec support. Signed-off-by: Tiejun Chen [scottwood: split patch and rewrote changelog] Signed-off-by: Scott Wood --- arch/powerpc/kernel/head_64.S | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 8b2bf0d..a1e85ca 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S @@ -474,15 +474,15 @@ __after_prom_start: */ li r3,0 /* target addr */ #ifdef CONFIG_PPC_BOOK3E - tovirt(r3,r3) /* on booke, we already run at PAGE_OFFSET */ + tovirt(r3,r3) /* on booke, we already run at PAGE_OFFSET */ #endif mr. r4,r26 /* In some cases the loader may */ +#if defined(CONFIG_PPC_BOOK3E) + tovirt(r4,r4) +#endif beq 9f /* have already put us at zero */ li r6,0x100 /* Start offset, the first 0x100 */ /* bytes were copied earlier. */ -#ifdef CONFIG_PPC_BOOK3E - tovirt(r6,r6) /* on booke, we already run at PAGE_OFFSET */ -#endif #ifdef CONFIG_RELOCATABLE /* @@ -514,6 +514,9 @@ __after_prom_start: p_end: .llong _end - _stext 4: /* Now copy the rest of the kernel up to _end */ +#if defined(CONFIG_PPC_BOOK3E) + tovirt(r26,r26) +#endif addis r5,r26,(p_end - _stext)@ha ld r5,(p_end - _stext)@l(r5) /* get _end */ 5: bl copy_and_flush /* copy the rest */