From patchwork Mon Feb 26 08:19:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Shi X-Patchwork-Id: 129574 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp3356985lja; Mon, 26 Feb 2018 00:23:41 -0800 (PST) X-Google-Smtp-Source: AH8x2274YtU2Hm1Z/7+g0bY6rxaTaIgLGzcwey4dRUCmcmnz2I04t7ozO9IqYq0CHCchHpssPulq X-Received: by 2002:a17:902:243:: with SMTP id 61-v6mr9829617plc.202.1519633421681; Mon, 26 Feb 2018 00:23:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519633421; cv=none; d=google.com; s=arc-20160816; b=DsD+xta5UW3hWBFi1dZJHYm6p+1KEx4fRi0iSXxPg88csQPQANFjZlrSk6ICPj8/7I 2LV4yJKcOIf2jRWwkVElUs+dAJDVsYYcVLivpy2I0LxgOHwtmfxsri+DiGd4jFIBmxnH Kju230GHsljepUZCBt8n6lwX2N1H7fbRiKxxjUilQwZPOE48l/TlHTdI6HcxkVOEV4kD flgQ7zBq3Dwm6Xr0SRzkJS51K/dbW6kV7ZUbsV1gXbKCevnIgEhcRXM33H6DCieWpMes EpnqOgglaG75AJFpWVMZcQsAdP3DY7XlNe5CpUU884s4cxkwOZeMFG2X+MBI3UiUZ2xf 6Dkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=zPqSNl85WyC76XW1VxDfQh//hh1Bpcs4lU5Fv1YTRJ0=; b=l3+qq4Co4fEbGKo+55+ONBt/ZQ8+t46j6KlU4YRAE6yqv5rm9h6nKCJTQ934fxWAa4 opBk7zdKEWP4p3mUnLF2+fdvpRylmOjrp/LBC1HCLnilTLvfGU+Ko05RFfVD9MxlOkmH DsxuMR9fjf0VFWPIrmWR5lHv8PlC018gBDrGp0WRZz6FqUdBavt0kNNIG4UeRhA/gwQ3 vbt/mwasGZcAwildCg+v6jd+8uVCvtNnfwjG5ezBtUjr0DH4FzATf/vnUzOuZpZa5v6d UQT0G28NMQdlUAI1BkgCH5Z4LZFeReVXX/j6Ku45brgJDKjiEqQNbKcxV/UULPuOTbSw 3PYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KDWmoSqW; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 m12-v6si3738150pll.351.2018.02.26.00.23.41; Mon, 26 Feb 2018 00:23:41 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-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=KDWmoSqW; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 S1751888AbeBZIXj (ORCPT + 10 others); Mon, 26 Feb 2018 03:23:39 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:34135 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751746AbeBZIXe (ORCPT ); Mon, 26 Feb 2018 03:23:34 -0500 Received: by mail-pg0-f68.google.com with SMTP id m19so5917893pgn.1 for ; Mon, 26 Feb 2018 00:23:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zPqSNl85WyC76XW1VxDfQh//hh1Bpcs4lU5Fv1YTRJ0=; b=KDWmoSqWRpgPXOtDS87zbO1parC+aWPWEmMrTJNlXcMiRczSZo/OOvbh1VPNpMuwxg 7v2ODO9ISyamLeGUekYilApPW2HQB89TMbVyFN0Jq0h2vYG6Gj2q3Wpb1T9qmZmj8La2 Ed0iqoaMU0PcjP85X3dG6y0dVASeYBMXgv1vs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zPqSNl85WyC76XW1VxDfQh//hh1Bpcs4lU5Fv1YTRJ0=; b=mjwssidKe6P+r0W5p3ty3g/eKPGKA2YuFn++4xtbUn/Ltqz7qw1216WZgLb9tNM+AB NyC6RWE+Gamp1yX6d+afvP0j/KNnt05pS4eQdM1x+VFli1EuPfsy3X/1amhO8rt2/bQa NstSCMxuk+YPCEa5zNc47ZO0BkjQo1Ev1KB3KkaNh49VMyL/3WdrKKLjmxGGcNqnlaGJ eEcp4KB+feTt4FBJzGH39731XsOqQOfgfmL2x8O1aoFZKSF/j3uF2bFYIYpbycrH3WyJ OSd0pdfxhyNzlsl+y/pcvZ+4WnPS8404D+EbAkQfAOidi3NF72UkXa+vADexYr5gHzNd qvmA== X-Gm-Message-State: APf1xPCjkboMbHgWBHcNQZVZv/jKNuVz+drYEYRAaERQeX60q70sW1ZA SUn0YaGbEgM0SLvgufXql67vvQ== X-Received: by 10.98.25.10 with SMTP id 10mr9661936pfz.136.1519633414159; Mon, 26 Feb 2018 00:23:34 -0800 (PST) Received: from localhost.localdomain (176.122.172.82.16clouds.com. [176.122.172.82]) by smtp.gmail.com with ESMTPSA id o86sm1422706pfi.87.2018.02.26.00.23.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 26 Feb 2018 00:23:33 -0800 (PST) From: Alex Shi To: Marc Zyngier , Will Deacon , Ard Biesheuvel , Catalin Marinas , stable@vger.kernel.org, linux-arm-kernel@lists.infradead.org (moderated list:ARM64 PORT (AARCH64 ARCHITECTURE)), linux-kernel@vger.kernel.org (open list) Cc: Suzuki K Poulose , Mark Rutland , Andre Przywara , Dave Martin Subject: [PATCH 20/52] arm64: Run enable method for errata work arounds on late CPUs Date: Mon, 26 Feb 2018 16:19:54 +0800 Message-Id: <1519633227-29832-21-git-send-email-alex.shi@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1519633227-29832-1-git-send-email-alex.shi@linaro.org> References: <1519633227-29832-1-git-send-email-alex.shi@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Suzuki K Poulose commit 55b35d070c25 upstream. When a CPU is brought up after we have finalised the system wide capabilities (i.e, features and errata), we make sure the new CPU doesn't need a new errata work around which has not been detected already. However we don't run enable() method on the new CPU for the errata work arounds already detected. This could cause the new CPU running without potential work arounds. It is upto the "enable()" method to decide if this CPU should do something about the errata. Fixes: commit 6a6efbb45b7d95c84 ("arm64: Verify CPU errata work arounds on hotplugged CPU") Cc: Will Deacon Cc: Mark Rutland Cc: Andre Przywara Cc: Dave Martin Signed-off-by: Suzuki K Poulose Signed-off-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Alex Shi --- arch/arm64/kernel/cpu_errata.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 2.7.4 diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c index c66a673c..8de43799 100644 --- a/arch/arm64/kernel/cpu_errata.c +++ b/arch/arm64/kernel/cpu_errata.c @@ -150,15 +150,18 @@ void verify_local_cpu_errata_workarounds(void) { const struct arm64_cpu_capabilities *caps = arm64_errata; - for (; caps->matches; caps++) - if (!cpus_have_cap(caps->capability) && - caps->matches(caps, SCOPE_LOCAL_CPU)) { + for (; caps->matches; caps++) { + if (cpus_have_cap(caps->capability)) { + if (caps->enable) + caps->enable((void *)caps); + } else if (caps->matches(caps, SCOPE_LOCAL_CPU)) { pr_crit("CPU%d: Requires work around for %s, not detected" " at boot time\n", smp_processor_id(), caps->desc ? : "an erratum"); cpu_die_early(); } + } } void update_cpu_errata_workarounds(void)