Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5832909imu; Tue, 13 Nov 2018 12:27:09 -0800 (PST) X-Google-Smtp-Source: AJdET5dKsPfZHLV/WMVCoT+pn+uW/XpoteyB9FzQo41pKknw2PhSlWrgp8QeoDqIyNSXqKV2Zbdd X-Received: by 2002:a17:902:50ec:: with SMTP id c41-v6mr6376692plj.176.1542140829830; Tue, 13 Nov 2018 12:27:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542140829; cv=none; d=google.com; s=arc-20160816; b=V0P2ZdFmWXVugU8GvmOSa4Di7i1811jG4bPKg/yKXePAKpb304pmktVoVxdNdFzuJ3 yGN9MAsJqZw+z/sjHNwL4YZiH1iNFMREguyLW8Rl2hGki0VSaetfQGeDxFVNW2hWn20T csY+vZoV0yZCtiRQkU/wif+jTjdffsoq366vc6eEkkpFEiqhkDLBKxuPALEWRdwi00l6 eXTXdPmosKMt3kJ7mUlVeMOpESwVrPD3ymxNX4GtAtMEHA63CRCfA1iJ2Y/FDEldzEvi qgLSqkZ4DhLL1K8b8O4oeXNyKWUT/dZLQfnQvFpSTnAKDakzAINsXH223PnF6Xe0wlr0 kDZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=k4fQGG2PtiLfYyVe1pdI0B7MjLTG3rMD5fjs5nzfD3g=; b=LquTc5dpxIXCTDvucizaVZgqSJKGXLMFa2Fj/8nGVfzLIarzgz0frUJmkuvdFJaRdq tTaZ4/mSndVkAKS9Zca5MucnMK5S+zDjr4yGmOzf9NUbAzPKy48FQLTh+wLt4PjS2pGL 5rhwH8x8pVuLwrsaJm3Uptb6iazVEvDi5+idQIoTinmLBTDaFj3JJi7jiPe1ElbDKcKZ cKivGtk4Mz1WfQqjnqyBH/kYR3B15y9p2LEJEkjsEbp4v1AeQNJ1ZTq+VNgkSCsTbT5h 41SJjzR01WZzRVNj8q7cNTx6NP48e+ggDTMe/kOvhLvmGw9fXGmTtPnhh+ysTu9G/H87 WBAw== 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=vmware.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v6si6146327pfj.167.2018.11.13.12.26.54; Tue, 13 Nov 2018 12:27:09 -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=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730748AbeKNGZ1 (ORCPT + 99 others); Wed, 14 Nov 2018 01:25:27 -0500 Received: from ex13-edg-ou-001.vmware.com ([208.91.0.189]:21360 "EHLO EX13-EDG-OU-001.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725892AbeKNGZ0 (ORCPT ); Wed, 14 Nov 2018 01:25:26 -0500 Received: from sc9-mailhost2.vmware.com (10.113.161.72) by EX13-EDG-OU-001.vmware.com (10.113.208.155) with Microsoft SMTP Server id 15.0.1156.6; Tue, 13 Nov 2018 12:25:11 -0800 Received: from sc2-haas01-esx0118.eng.vmware.com (sc2-haas01-esx0118.eng.vmware.com [10.172.44.118]) by sc9-mailhost2.vmware.com (Postfix) with ESMTP id 8DB64B1A5A; Tue, 13 Nov 2018 15:25:38 -0500 (EST) From: Nadav Amit To: Ingo Molnar CC: , , "H. Peter Anvin" , Thomas Gleixner , Borislav Petkov , Dave Hansen , Peter Zijlstra , , , , Nadav Amit , Andy Lutomirski , Kees Cook , Dave Hansen , Masami Hiramatsu Subject: [PATCH v5 02/10] x86/jump_label: Use text_poke_early() during early init Date: Tue, 13 Nov 2018 05:07:22 -0800 Message-ID: <20181113130730.44844-3-namit@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113130730.44844-1-namit@vmware.com> References: <20181113130730.44844-1-namit@vmware.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: None (EX13-EDG-OU-001.vmware.com: namit@vmware.com does not designate permitted sender hosts) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Co-Developed-by: Peter Zijlstra Signed-off-by: Nadav Amit --- 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 aac0c1f7e354..ed5fe274a7d8 100644 --- a/arch/x86/kernel/jump_label.c +++ b/arch/x86/kernel/jump_label.c @@ -52,7 +52,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