From patchwork Sat Sep 3 16:33:00 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shilimkar X-Patchwork-Id: 1123382 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.4) with ESMTP id p83GXEZi011995 for ; Sat, 3 Sep 2011 16:33:15 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752753Ab1ICQdL (ORCPT ); Sat, 3 Sep 2011 12:33:11 -0400 Received: from na3sys009aog114.obsmtp.com ([74.125.149.211]:35944 "EHLO na3sys009aog114.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752573Ab1ICQdK (ORCPT ); Sat, 3 Sep 2011 12:33:10 -0400 Received: from mail-yx0-f180.google.com ([209.85.213.180]) (using TLSv1) by na3sys009aob114.postini.com ([74.125.148.12]) with SMTP ID DSNKTmJWxZUpUZWBE7m3VY6HHBei8QNSkADe@postini.com; Sat, 03 Sep 2011 09:33:09 PDT Received: by yxi11 with SMTP id 11so2976294yxi.25 for ; Sat, 03 Sep 2011 09:33:08 -0700 (PDT) Received: by 10.150.75.5 with SMTP id x5mr1829363yba.420.1315067588465; Sat, 03 Sep 2011 09:33:08 -0700 (PDT) Received: from [172.24.137.49] (dragon.ti.com [192.94.94.33]) by mx.google.com with ESMTPS id s19sm3085991anm.20.2011.09.03.09.33.03 (version=SSLv3 cipher=OTHER); Sat, 03 Sep 2011 09:33:06 -0700 (PDT) Message-ID: <4E6256BC.3080604@ti.com> Date: Sat, 03 Sep 2011 22:03:00 +0530 From: Santosh User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Thunderbird/3.1.11 MIME-Version: 1.0 To: Russell King - ARM Linux CC: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 08/11] ARM: pm: no need to save/restore context ID register References: <20110901124752.GE29729@n2100.arm.linux.org.uk> In-Reply-To: Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Sat, 03 Sep 2011 16:33:54 +0000 (UTC) On Thursday 01 September 2011 06:20 PM, Russell King - ARM Linux wrote: > There is no need to save and restore the context ID register on ARMv6 > and ARMv7 with a temporary page table as we write the context ID > register when we switch back to the real page tables for the thread. > > Moreover, the temporary page tables do not contain any non-global > mappings, so the context ID value should not be used. To be safe, > initialize the register to a reserved context ID value. > > Signed-off-by: Russell King > --- > arch/arm/mm/proc-v6.S | 33 ++++++++++++++++----------------- > arch/arm/mm/proc-v7.S | 13 ++++++------- > 2 files changed, 22 insertions(+), 24 deletions(-) > > diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S > index 2e27b46..a92c3c3 100644 > --- a/arch/arm/mm/proc-v6.S > +++ b/arch/arm/mm/proc-v6.S > @@ -128,19 +128,18 @@ ENTRY(cpu_v6_set_pte_ext) > > /* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ > .globl cpu_v6_suspend_size > -.equ cpu_v6_suspend_size, 4 * 7 > +.equ cpu_v6_suspend_size, 4 * 6 > #ifdef CONFIG_PM_SLEEP > ENTRY(cpu_v6_do_suspend) > - stmfd sp!, {r4 - r10, lr} > + stmfd sp!, {r4 - r9, lr} > mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID > - mrc p15, 0, r5, c13, c0, 1 @ Context ID > - mrc p15, 0, r6, c3, c0, 0 @ Domain ID > - mrc p15, 0, r7, c2, c0, 1 @ Translation table base 1 > - mrc p15, 0, r8, c1, c0, 1 @ auxiliary control register > - mrc p15, 0, r9, c1, c0, 2 @ co-processor access control > - mrc p15, 0, r10, c1, c0, 0 @ control register > - stmia r0, {r4 - r10} > - ldmfd sp!, {r4- r10, pc} > + mrc p15, 0, r5, c3, c0, 0 @ Domain ID > + mrc p15, 0, r6, c2, c0, 1 @ Translation table base 1 > + mrc p15, 0, r7, c1, c0, 1 @ auxiliary control register > + mrc p15, 0, r8, c1, c0, 2 @ co-processor access control > + mrc p15, 0, r9, c1, c0, 0 @ control register > + stmia r0, {r4 - r9} > + ldmfd sp!, {r4- r9, pc} > ENDPROC(cpu_v6_do_suspend) > > ENTRY(cpu_v6_do_resume) > @@ -149,19 +148,19 @@ ENTRY(cpu_v6_do_resume) > mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache > mcr p15, 0, ip, c7, c15, 0 @ clean+invalidate cache > mcr p15, 0, ip, c7, c10, 4 @ drain write buffer > - ldmia r0, {r4 - r10} > + mcr p15, 0, ip, c13, 0, 1 @ set reserved context ID Typo which results in build error. Error: co-processor register expected -- `mcr p15,0,ip,c13,0,1' You can fold below fix. diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 53bba9d..b3455c1 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S @@ -148,7 +148,7 @@ ENTRY(cpu_v6_do_resume) mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache mcr p15, 0, ip, c7, c15, 0 @ clean+invalidate cache mcr p15, 0, ip, c7, c10, 4 @ drain write buffer - mcr p15, 0, ip, c13, 0, 1 @ set reserved context ID + mcr p15, 0, ip, c13, c0, 1 @ set reserved context ID ldmia r0, {r4 - r9} mcr p15, 0, r4, c13, c0, 0 @ FCSE/PID mcr p15, 0, r5, c3, c0, 0 @ Domain ID