Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1788120imu; Thu, 17 Jan 2019 03:19:17 -0800 (PST) X-Google-Smtp-Source: ALg8bN7gtScRLTCVGaQ3nwMECV+WjwyfTmhU/+37BaVkebf8s4Sbj5J83jVeTvwkRY8bDiRvB6eQ X-Received: by 2002:a63:4384:: with SMTP id q126mr12985838pga.160.1547723957184; Thu, 17 Jan 2019 03:19:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547723957; cv=none; d=google.com; s=arc-20160816; b=QAhISKMVkSX5rIKlamME1MQhoYQgUcPmliH5GCQoSmvCf4sAq/ke7WYCZzln3eLYBt 08f10w5KZUsdWPOjSGABQEWk+sR5lgsssoTQiiZafevIVRBlLC//IOyzfD+8ucxG8dLF 22YuvdYxZufEvRTWEwQw5GvaZY4WjlFEDQ0jjStHoCAgsfqTxxel2zf5bGlIQAE101N3 1NQO+LqpDkEhOgL9x+EBbpEklNppKqeK/ycIRPbg9EzUeguQ+YbpfD6gt99zZLUqIZ9Z GM2wJV+I6d2Wfgvm1MF7u7KOFY58BGzDxvyql6vACyRDb/ITwoC9aZ12cOkKgIo8gYX8 IgeA== 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=riU4AUNFoiigx578aDCwA4TwOChKMPTJViD3Oo4NuoA=; b=r1VSHy8NAM7z/pjdaEx1cMsNCMK/lYGbXw9VQZ1dRV0wZEot1Ed/y+omrn9UBmBlUX YiyABvujBxoOfLiC3CTj9O/kuIW25xGfKBC2QI7wcgeGFbV6gF7pGfOmXty/B2uTyXm8 +kSxlGEFqzIxcLDDZujL8MK2VXwvrYAVFonvta4eWtY7oMbLRsKvMPK5gOv4R6eijXSj tn9wDGbP0OwRLaJ1Pcafn+Xt04kaqU9y9HYgLZzjHHbtZzZkThGzN80QEHLkxze83WzQ pLySjbuKF/vW9gyZesnDQKZGHXdMzpcV0vX/pI4R20u+F0Hj1t4fuHrucnWtDOHHjuVk l34A== 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 w2si1178448pgp.546.2019.01.17.03.18.56; Thu, 17 Jan 2019 03:19:17 -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 S1731764AbfAQAfm (ORCPT + 99 others); Wed, 16 Jan 2019 19:35:42 -0500 Received: from mga05.intel.com ([192.55.52.43]:42209 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729881AbfAQAdh (ORCPT ); Wed, 16 Jan 2019 19:33:37 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jan 2019 16:33:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,488,1539673200"; d="scan'208";a="292166012" Received: from rpedgeco-desk5.jf.intel.com ([10.54.75.79]) by orsmga005.jf.intel.com with ESMTP; 16 Jan 2019 16:33:35 -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 02/17] x86/jump_label: Use text_poke_early() during early init Date: Wed, 16 Jan 2019 16:32:44 -0800 Message-Id: <20190117003259.23141-3-rick.p.edgecombe@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190117003259.23141-1-rick.p.edgecombe@intel.com> References: <20190117003259.23141-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 Cc: Peter Zijlstra 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