Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp124996imj; Thu, 14 Feb 2019 16:50:55 -0800 (PST) X-Google-Smtp-Source: AHgI3Ia8YrEYAXWtVAhgvU44CFX/EnCq5Nx/CexvLBWbqJ3aPBO7Cx2ydIJsdKJR3b+LWP4xaqmc X-Received: by 2002:a63:d413:: with SMTP id a19mr2659712pgh.199.1550191855415; Thu, 14 Feb 2019 16:50:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550191855; cv=none; d=google.com; s=arc-20160816; b=TKlJwyZzf5wx60gwd+cNK497zPIQ0bE3N3vroavn/RdjutKAT0Ssmrd3W8Dw1UeoLN hARpHvNU6PlJJl7fJFO0FeFd5+G+Yyb1r/luIhJZwiz1bGdKomr4GHJ71AIDYxEB6C2Z amaQ/FtI8jlvBAjagsrRD+C6JlydBEHQoBubT8N8nw56g1F296ysWoqCG7GJZYeqCeo9 zLcSf2j7nAM87qZqgePdgcvakdevhnGz+UNpkAdp9wW9PR7PpUHwmuXk/mYF1VAQLNuy 9xJelxsDbGUDHM2t4HDkIe3er98J3JUae+b/3Oyfqt6EmDr8a8vS26kqOlPjhBw9EMNE AVzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date:dkim-signature; bh=8URW38EG/birhvOd1CEttVcY4MAfmWXqwn5nAzVy4kw=; b=shvBCq5mzCD+Cg1BM7VVtuInCmP7mTgnulH3p4nRrKiTGq0gXZil1X6abBTnWv3Kc2 kLMTVwkhaGgFuWrL0GQMiFtCAd9bp0FB3E5cg625pmJ/Fh5B5FPB7s0TErkf7KiczCSq 3VfXz4ERXGiwLwU+gsXGIWI9pCdIu7zBq5SvSHhuwtRANKxNg/s1MUrBI3qiLJbZnKog keo8BZotru8ba1j/RmnEKYfkyezNy1igvruojAwCGFq7O2ttXnf/ES+OxjKCfPK6DtGf elmqR5+a1Nes8S8WxWgXQIQ6YRYVAjSIpRn6UuX/f7if25SlTuG2uIzbvjcyIY1dgkSZ Marg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DiK9P6dV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o1si3675647pgh.29.2019.02.14.16.50.40; Thu, 14 Feb 2019 16:50:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DiK9P6dV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2395301AbfBNQFX (ORCPT + 99 others); Thu, 14 Feb 2019 11:05:23 -0500 Received: from mail-qk1-f193.google.com ([209.85.222.193]:46604 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389764AbfBNQFX (ORCPT ); Thu, 14 Feb 2019 11:05:23 -0500 Received: by mail-qk1-f193.google.com with SMTP id i5so3841691qkd.13 for ; Thu, 14 Feb 2019 08:05:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=8URW38EG/birhvOd1CEttVcY4MAfmWXqwn5nAzVy4kw=; b=DiK9P6dVlYK1LD+uuGzFzqofcpOZmkVqJfbyV+F+qHsLCQZ0qpnDVwni1/bspwuc/2 YqBwdsgunHF2wr1u/bqfUNfvk8Zsm53r9zfg25xKtVbotZ+PbLlKS4XALbJ7YI7Q44Ka sCwM29oB7mf9fu5zjIsaskI3E63iJTJ/OII/nHquC6C6YfEEZYbx7aPk8DyZ9QD/o+QT zJzuk3jTgXYOAWn6RS/CY/VYNrxIUgRa0o4pijhs6j8rBgy75k4mddxB14yu84jzSZkk +fwB25DVeSkjl3u/UsRSuSipRiVj5SlEse0x6hU2prSlJfqahX8Tn4F6MdCPA3XQ05bg UwkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=8URW38EG/birhvOd1CEttVcY4MAfmWXqwn5nAzVy4kw=; b=IXm6qGNDKkULCm2oRLjtbaXFplbxgk0OExerXeKKAzGVm7gipN1LLejwRepLFxbtL8 RX2JlyKlJUlKwG7GLoSfv2eawdsqFoXr7JqyQh7ooY70jFeWkkKS0N3b3tykwMyYVvit gNDAY2Ae/kVN2FEuCVem1RF1Cvw68FaGD/d/Y9PEyXIZRWu9nzjHI4C7/RYU9y6NRzAI spSltWFwYKrfBF1cVQDoCbDe4t4IZ09uafw3ma60XzfkwQqEvQdCUjHVnOOB4XdYogfM doqysi0qMZCY9xc+bogMSpCg7e7zflQsBXmo+cfzqJ9P+QoJuea5eGT31nJHjsUN5q1D I8fg== X-Gm-Message-State: AHQUAuYPSpMn2qXjc4LcruYsSaVnaUHfmHFT3vpWkzUg0iy/F8Gv7nwR vzb/vqKnyLSkvhscFFC24fYjxw== X-Received: by 2002:a37:9c8f:: with SMTP id f137mr3406751qke.248.1550160322025; Thu, 14 Feb 2019 08:05:22 -0800 (PST) Received: from xanadu.home (modemcable228.104-82-70.mc.videotron.ca. [70.82.104.228]) by smtp.gmail.com with ESMTPSA id s15sm1507655qte.30.2019.02.14.08.05.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Feb 2019 08:05:21 -0800 (PST) Date: Thu, 14 Feb 2019 11:05:20 -0500 (EST) From: Nicolas Pitre To: Marek Szyprowski cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Russell King , Kevin Hilman , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Marian Mihailescu , Seung-Woo Kim Subject: Re: [PATCH] ARM: pm: fix HYP/SVC mode mismatch when MCPM is used In-Reply-To: <20190214143114.24356-1-m.szyprowski@samsung.com> Message-ID: References: <20190214143114.24356-1-m.szyprowski@samsung.com> User-Agent: Alpine 2.21 (LFD 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 14 Feb 2019, Marek Szyprowski wrote: > MCPM does a soft reset of the CPUs and uses common cpu_resume() routine to > perform low-level platform initialization. This results in a try to install > HYP stubs for the second time for each CPU and results in false HYP/SVC > mode mismatch detection. The HYP stubs are already installed at the > beginning of the kernel initialization on the boot CPU (head.S) or in the > secondary_startup() for other CPUs. To fix this issue MCPM code should use > a cpu_resume() routine without HYP stubs installation. > > This change fixes HYP/SVC mode mismatch on Samsung Exynos5422-based Odroid > XU3/XU4/HC1 boards. > > Fixes: 3721924c8154 ("ARM: 8081/1: MCPM: provide infrastructure to allow for MCPM loopback") > Signed-off-by: Marek Szyprowski Acked-by: Nicolas Pitre > --- > arch/arm/common/mcpm_entry.c | 2 +- > arch/arm/include/asm/suspend.h | 1 + > arch/arm/kernel/sleep.S | 11 +++++++++++ > 3 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c > index ad574d20415c..1b1b82b37ce0 100644 > --- a/arch/arm/common/mcpm_entry.c > +++ b/arch/arm/common/mcpm_entry.c > @@ -381,7 +381,7 @@ static int __init nocache_trampoline(unsigned long _arg) > unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); > phys_reset_t phys_reset; > > - mcpm_set_entry_vector(cpu, cluster, cpu_resume); > + mcpm_set_entry_vector(cpu, cluster, cpu_resume_no_hyp); > setup_mm_for_reboot(); > > __mcpm_cpu_going_down(cpu, cluster); > diff --git a/arch/arm/include/asm/suspend.h b/arch/arm/include/asm/suspend.h > index 452bbdcbcc83..506314265c6f 100644 > --- a/arch/arm/include/asm/suspend.h > +++ b/arch/arm/include/asm/suspend.h > @@ -10,6 +10,7 @@ struct sleep_save_sp { > }; > > extern void cpu_resume(void); > +extern void cpu_resume_no_hyp(void); > extern void cpu_resume_arm(void); > extern int cpu_suspend(unsigned long, int (*)(unsigned long)); > > diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S > index a8257fc9cf2a..b856d183691e 100644 > --- a/arch/arm/kernel/sleep.S > +++ b/arch/arm/kernel/sleep.S > @@ -122,6 +122,11 @@ ENDPROC(cpu_resume_after_mmu) > > #ifdef CONFIG_MMU > .arm > +#ifdef CONFIG_MCPM > +ENTRY(cpu_resume_no_hyp) > +ARM_BE8(setend be) @ ensure we are in BE mode > + b 0f > +#endif > ENTRY(cpu_resume_arm) > THUMB( badr r9, 1f ) @ Kernel is entered in ARM. > THUMB( bx r9 ) @ If this is a Thumb-2 kernel, > @@ -135,6 +140,9 @@ ARM_BE8(setend be) @ ensure we are in BE mode > bl __hyp_stub_install_secondary > #endif > safe_svcmode_maskall r1 > +#ifdef CONFIG_MCPM > +0: > +#endif > mov r1, #0 > ALT_SMP(mrc p15, 0, r0, c0, c0, 5) > ALT_UP_B(1f) > @@ -163,6 +171,9 @@ ENDPROC(cpu_resume) > > #ifdef CONFIG_MMU > ENDPROC(cpu_resume_arm) > +#endif > +#ifdef CONFIG_MCPM > +ENDPROC(cpu_resume_no_hyp) > #endif > > .align 2 > -- > 2.17.1 > >