Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp5449735imm; Tue, 16 Oct 2018 10:23:31 -0700 (PDT) X-Google-Smtp-Source: ACcGV63fylTijF2K/E3DeufX9y76AU+3X+FpnAd6BQVvFm91DpJuPOFd22sHP5gzBcXJP4zqFROQ X-Received: by 2002:a63:7d43:: with SMTP id m3-v6mr21089742pgn.341.1539710611300; Tue, 16 Oct 2018 10:23:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539710611; cv=none; d=google.com; s=arc-20160816; b=i5wCAzl/KYmKzoT5QoIfO+agYLjwqSSvXEPIVAfiIRf9QSGqLlN2WTbykyU0t0dOPr tQfL7FSMLhyNF73/2D4EiVMUdLUamf7UcUnGE7EHDkUSLA63LtEGX9esP5eR6g4cr/FZ VyHUmc68i2g7St+tHD9Vgf/saXQjNZWV7RyC9UrXPi5+eMvk26oV69wz3MZUpgsX/Iog riNHA0chuQ91EqMEIAoGst9DN+KxlGMpVRXhqZEKW1UXG9fyGhcSGGyBp3mEmXRYVi5D b7kP0SUsYkJnKwV2jZQZfTT5hiIcsIR00foGUh2oJzJmfZAIZzJuJfvfvYUPCHduqhKU ncRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=F3SN9yQRvQBH48jE20xzLF5Di+tpTFIYBAi6X49Dn1g=; b=LwQkFztpMuSYEVKSBeOBk/SxQqzldpmbrsREhSITJUQG63qccv+7faRcEtbSWmijzc gAsXPlN6GopW9zVGVvsUzueFGkoN/6kZydEM+phc1s5v9TfyT9FDT0h3nZtKaGaVlpbU eEJ3Ut/c+WK4Cxo5kQw99lHkbAhI/xdMXJdz3amrEM5xZNyn9zo9v+nTZeZqyihjaT8i k7sVCvURUGXQ8eBxA6Mc3uIBDbXGAx4ns4cvcAPp2BIW6Cx3v7tehdnbJ0MCM1A5uSFz Pumaiyt+kjSH3x9D7N574XuPOxPKrYEWgkt/9Y+OpAjeVcRR9ALIMioGaHBxucwZMDOG no9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PSx2reL0; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 33-v6si14717846plh.50.2018.10.16.10.23.15; Tue, 16 Oct 2018 10:23:31 -0700 (PDT) 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=@kernel.org header.s=default header.b=PSx2reL0; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730791AbeJQBM3 (ORCPT + 99 others); Tue, 16 Oct 2018 21:12:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:57998 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729296AbeJQBM3 (ORCPT ); Tue, 16 Oct 2018 21:12:29 -0400 Received: from localhost (ip-213-127-77-176.ip.prioritytelecom.net [213.127.77.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BB07C2098A; Tue, 16 Oct 2018 17:21:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539710464; bh=o7IcghosPg6UwOSFp054RUJY3SVSRdM0XimlGAyJARA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PSx2reL0g683W+4JZ6VDK3C51nEDplwYA7OBO/jqC5Tn/2PsqNWpjGK9Jip1Fd5Ru eYOSZ40dJQTMfaCBuBEtt+V4XPZmqqBJPhl//1m+ATW+FUIKTHt49UWV8TVTGul9mV C1fvTBTqadX+gL80YSUE2ActqVH8TBZrQ5wRNSJw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Russell King , Florian Fainelli , Tony Lindgren , Marc Zyngier , "David A. Long" Subject: [PATCH 4.14 088/109] ARM: bugs: add support for per-processor bug checking Date: Tue, 16 Oct 2018 19:05:56 +0200 Message-Id: <20181016170529.787037936@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181016170524.530541524@linuxfoundation.org> References: <20181016170524.530541524@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Russell King Commit 9d3a04925deeabb97c8e26d940b501a2873e8af3 upstream. Add support for per-processor bug checking - each processor function descriptor gains a function pointer for this check, which must not be an __init function. If non-NULL, this will be called whenever a CPU enters the kernel via which ever path (boot CPU, secondary CPU startup, CPU resuming, etc.) This allows processor specific bug checks to validate that workaround bits are properly enabled by firmware via all entry paths to the kernel. Signed-off-by: Russell King Reviewed-by: Florian Fainelli Boot-tested-by: Tony Lindgren Reviewed-by: Tony Lindgren Acked-by: Marc Zyngier Signed-off-by: David A. Long Signed-off-by: Greg Kroah-Hartman --- arch/arm/include/asm/proc-fns.h | 4 ++++ arch/arm/kernel/bugs.c | 4 ++++ arch/arm/mm/proc-macros.S | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) --- a/arch/arm/include/asm/proc-fns.h +++ b/arch/arm/include/asm/proc-fns.h @@ -37,6 +37,10 @@ extern struct processor { */ void (*_proc_init)(void); /* + * Check for processor bugs + */ + void (*check_bugs)(void); + /* * Disable any processor specifics */ void (*_proc_fin)(void); --- a/arch/arm/kernel/bugs.c +++ b/arch/arm/kernel/bugs.c @@ -5,6 +5,10 @@ void check_other_bugs(void) { +#ifdef MULTI_CPU + if (processor.check_bugs) + processor.check_bugs(); +#endif } void __init check_bugs(void) --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S @@ -273,13 +273,14 @@ mcr p15, 0, ip, c7, c10, 4 @ data write barrier .endm -.macro define_processor_functions name:req, dabort:req, pabort:req, nommu=0, suspend=0 +.macro define_processor_functions name:req, dabort:req, pabort:req, nommu=0, suspend=0, bugs=0 .type \name\()_processor_functions, #object .align 2 ENTRY(\name\()_processor_functions) .word \dabort .word \pabort .word cpu_\name\()_proc_init + .word \bugs .word cpu_\name\()_proc_fin .word cpu_\name\()_reset .word cpu_\name\()_do_idle