Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4068552imu; Mon, 28 Jan 2019 16:39:35 -0800 (PST) X-Google-Smtp-Source: ALg8bN4bYWL9DqPXYlLcCYt7reA5Ueb0Mso1/xKXLVsQJSI+kx9OvxpOWDBMDoknc590DBy/8ozq X-Received: by 2002:a62:a1a:: with SMTP id s26mr24205241pfi.31.1548722375832; Mon, 28 Jan 2019 16:39:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548722375; cv=none; d=google.com; s=arc-20160816; b=MwP2DZA83H1g/NSxHhxHE97jM4SB9W4LgR4kzWwwFHjSD9T0SqHRIT+R02uqpYzhTE lHv+N6y7xV2IgAGvRgAFIvxck8rhQbdpGT3ExbTt/RJtuyekdC0eppmu9PqDOp5dWWgQ jqDST+OVRVgJb0fMvDz/M4rDmH9x0hP8WS4SqYGQLzkSi1I75P0ASBAWM9iNsTCxExFj 457SrP0CPk8U22aMxLX8QdrBhB/DhutSvrmnjoGc1H00xY6o4vebQfxs+0yOk9xmI6Ec 8n2g1wuS4Hbt9E9t5aRY7Lmwkeo+Yiuocl4lMt/0QD1dMwL+7M3DSNY4G3EPfEYmtIO6 FGTQ== 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; bh=MIEM7tFANWCvfO0km255hENS9lmP/VKfFRdymqsmEG4=; b=Xtn/rftTi9YQvME1ltYTgBmZCGs3/MB2zdIoElhy+qJJx+ZfB0yQ0KbvB8p6e3x107 WRI8UKdtNSqdGdwRzOLl6pHG4dC6kayF2BhVkVyzADbHBtcumOxharkDpP+DDSyfiFOl 12rVWZDYyYbgetxcKeRySDKpbIt9ii9nZBaZAO7rCv6Tm9ZQ2I/mEPhdydhf0Gf2IOEV kRIQHkQRLybKl+Rvw3nkebmiCfov3b5TSbnbbUrgPt3iZDgQlvpIoSDVeMnRElU7lZk6 aEtyC/ezE7bx/cOM3Oh8IDjepB9kbtkk9wIG1lrkE4DUuAD8G4a/pwU2+VIxBKuX2qit 5obw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g92si35337505plg.392.2019.01.28.16.39.20; Mon, 28 Jan 2019 16:39:35 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727408AbfA2AjN (ORCPT + 99 others); Mon, 28 Jan 2019 19:39:13 -0500 Received: from mga06.intel.com ([134.134.136.31]:5081 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726845AbfA2AjM (ORCPT ); Mon, 28 Jan 2019 19:39:12 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.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> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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) { -- 2.17.1