From patchwork Tue Jan 29 00:34:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Edgecombe, Rick P" X-Patchwork-Id: 10785111 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 068306C2 for ; Tue, 29 Jan 2019 00:39:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E6C242AE87 for ; Tue, 29 Jan 2019 00:39:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D98252AEA6; Tue, 29 Jan 2019 00:39:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5F7752AE87 for ; Tue, 29 Jan 2019 00:39:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 282628E0008; Mon, 28 Jan 2019 19:39:14 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 1F9318E0007; Mon, 28 Jan 2019 19:39:14 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 112428E0006; Mon, 28 Jan 2019 19:39:14 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by kanga.kvack.org (Postfix) with ESMTP id C0CAF8E0001 for ; Mon, 28 Jan 2019 19:39:13 -0500 (EST) Received: by mail-pf1-f197.google.com with SMTP id p15so15383073pfk.7 for ; Mon, 28 Jan 2019 16:39:13 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=MIEM7tFANWCvfO0km255hENS9lmP/VKfFRdymqsmEG4=; b=LBHmsfyv/LCx6Jt9Ckok6Im5Lv1xPZ8Y+utaYlbt3nRXBrCIm6lOvYeAas2J+ci5Fo JOo+zdw0mAfwl1Pj6xSrM5tVsEsOeTOGL5V5kN0/5yVp0neIDgLUdzLsE8YsPwtTaHCe SyCjqKSXmeIXGA71dXnUkCszIg1e1CYxigXfOMqeeGzqTFoJezSzyV1QLrIychvZF2n0 z64hXnuzAsi/judViyW2A30tTziQDCLQ5LPd5vyf4R8ZJ5DeOOGC4gXG91SeKv6k68zL lPkfyaUsSCvkhaUOdmINrMtdAJlVDf4xSrmqKk7p0KQyVvi1xAlTMcPEL+dU0UpSRccQ TNJg== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of rick.p.edgecombe@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=rick.p.edgecombe@intel.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com X-Gm-Message-State: AJcUukflHXBBWw73UDPhr4TA/r1JmHI5wl32r3A10Tu7e+91BUWze3LJ OWe8RzO4SVaxJ1tS/M1I1YxddLMoE33n6peyM0PMYnQEVes9dxf7XEKBC2/75+WpmKyP6rXgRUI sCkGJuqZVs+DcJ3MHcNv+tz0Z+tQtmUAQBFURXliSYHpOBgHUJMkAnGHQtrauKY0JBQ== X-Received: by 2002:a17:902:c05:: with SMTP id 5mr24106496pls.155.1548722353450; Mon, 28 Jan 2019 16:39:13 -0800 (PST) X-Google-Smtp-Source: ALg8bN51RWJbF4K+0gtIldLEJvGY0Ez67nKfgyHYuP4+WVi6SnGB7nc76EDOzCyKdxFGumAggyl8 X-Received: by 2002:a17:902:c05:: with SMTP id 5mr24106466pls.155.1548722352785; Mon, 28 Jan 2019 16:39:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548722352; cv=none; d=google.com; s=arc-20160816; b=pyzKWu4aOoGqq4iivSy6Xiw42iWnMnY8eaxl6KSIGklR+YprG9uLgKpQp6ZS9dzS7n +5cD+3ZZgx29Q+d2TkyDCX3lYj77+YKt2G1tgAAAsSAPA0GowqrHUgwgJbtjPXlBLwVl SubsEF1ZGRNuUUxE7iVyrSNmIZzfZnXemECkYWeHheSX34SaEJ15b2mDmMZ1OGpUwODI 8r51IPAhnbDBm/CKFzkFypFSFC1UGXqsKZVOhQrO4HecnEpU3jmtbrN7t4/aJ7qnpIpz LSeQXKMPrQnrG5CMdTtJgae+A+WCdyUwt6++Krjux2c+8bnutSPxCwYAdbFN3lUrrICR RVlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=MIEM7tFANWCvfO0km255hENS9lmP/VKfFRdymqsmEG4=; b=fEn2iEQ+WRFtV2jwvTfGx4PqL416jrHGfzTlsUMQweAvMgMiy3zo4ctprgwIDbBHSY gH8DzkxWsLs82yixPul6UhChBIrPFri8fBamf0v2KLtSB5TJnmssebjG5LF2/ciJDZOd 4FaAKRvfwu6YrAzwViSXnJl+hWNwNcYR5oItxZhXDiIb6pN/rtW1TmlYqNKnvCHcnFWR /Oeu0g6u3YDLs9Dvk0mcgPFMiMXpFZ6FJGxvyYLPMMpWsiI8xRksPwFEMpTuTqmXI1/r 7573d+fAiX2EHduNkY3faGbqZY7RrHPIiWrUQkEqAyMfiJr1is5zuC86qDokP0V5QJM+ ddnQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of rick.p.edgecombe@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=rick.p.edgecombe@intel.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from mga04.intel.com (mga04.intel.com. [192.55.52.120]) by mx.google.com with ESMTPS id l7si33052569pfg.245.2019.01.28.16.39.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Jan 2019 16:39:12 -0800 (PST) Received-SPF: pass (google.com: domain of rick.p.edgecombe@intel.com designates 192.55.52.120 as permitted sender) client-ip=192.55.52.120; Authentication-Results: mx.google.com; spf=pass (google.com: domain of rick.p.edgecombe@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=rick.p.edgecombe@intel.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Jan 2019 16:39:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,535,1539673200"; d="scan'208";a="133921888" Received: from rpedgeco-desk5.jf.intel.com ([10.54.75.79]) by orsmga001.jf.intel.com with ESMTP; 28 Jan 2019 16:39:11 -0800 From: Rick Edgecombe To: Andy Lutomirski , Ingo Molnar Cc: linux-kernel@vger.kernel.org, x86@kernel.org, hpa@zytor.com, Thomas Gleixner , Borislav Petkov , Nadav Amit , Dave Hansen , Peter Zijlstra , linux_dti@icloud.com, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, akpm@linux-foundation.org, kernel-hardening@lists.openwall.com, linux-mm@kvack.org, will.deacon@arm.com, ard.biesheuvel@linaro.org, kristen@linux.intel.com, deneen.t.dock@intel.com, Nadav Amit , Kees Cook , Dave Hansen , Masami Hiramatsu , Rick Edgecombe Subject: [PATCH v2 02/20] x86/jump_label: Use text_poke_early() during early init Date: Mon, 28 Jan 2019 16:34:04 -0800 Message-Id: <20190129003422.9328-3-rick.p.edgecombe@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190129003422.9328-1-rick.p.edgecombe@intel.com> References: <20190129003422.9328-1-rick.p.edgecombe@intel.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP From: Nadav Amit There is no apparent reason not to use text_poke_early() while we are during early-init and we do not patch code that might be on the stack (i.e., we'll return to the middle of the patched code). This appears to be the case of jump-labels, so do so. This is required for the next patches that would set a temporary mm for patching, which is initialized after some static-keys are enabled/disabled. Cc: Andy Lutomirski Cc: Kees Cook Cc: Dave Hansen Cc: Masami Hiramatsu Acked-by: Peter Zijlstra (Intel) Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe --- arch/x86/kernel/jump_label.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c index f99bd26bd3f1..e36cfec0f35e 100644 --- a/arch/x86/kernel/jump_label.c +++ b/arch/x86/kernel/jump_label.c @@ -50,7 +50,12 @@ static void __ref __jump_label_transform(struct jump_entry *entry, jmp.offset = jump_entry_target(entry) - (jump_entry_code(entry) + JUMP_LABEL_NOP_SIZE); - if (early_boot_irqs_disabled) + /* + * As long as we're UP and not yet marked RO, we can use + * text_poke_early; SYSTEM_BOOTING guarantees both, as we switch to + * SYSTEM_SCHEDULING before going either. + */ + if (system_state == SYSTEM_BOOTING) poker = text_poke_early; if (type == JUMP_LABEL_JMP) {