From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1E286C433E1 for ; Thu, 18 Jun 2020 06:43:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EBB5D20FC3 for ; Thu, 18 Jun 2020 06:43:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="kRMCd9CW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727969AbgFRGnZ (ORCPT ); Thu, 18 Jun 2020 02:43:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727010AbgFRGnY (ORCPT ); Thu, 18 Jun 2020 02:43:24 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46713C06174E; Wed, 17 Jun 2020 23:43:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Sender:Reply-To:Content-ID:Content-Description; bh=SUoVkFQUmyi1QuSIWVOIlXHCGmT/Vk+Hj9VKkJNBZPM=; b=kRMCd9CWE8Z4zk7v4dWebOFH/W roNF9rNUIbgg2q64rQLRFQwHvmw82StRDKY3X/rI0d7KpoX2jE+ogKTFOdkdiz4twv24zu4VKsAZo 5499ut/O2vfwhMrn70kSJZBCATzWSEl5TTiokYnci392puTnJv+Jiv3Ui7HUNMrsj1IT1Wt4aRH0+ EVB7hcYKvOMBkMM+iC+/K22ox6rh/ch1XZsf6ckiBXfUS2fZNxJFF3zxGrUrlFLfDhq1IfZbGjkfd KzwWdJepf4rXaibEpUpx1M8Se4rmg/Bhx5ZCBCPhq7zAGMMzHiQNyUeRvfdyBEA+m857HXYvTkjyD RdhhbR6w==; Received: from 195-192-102-148.dyn.cablelink.at ([195.192.102.148] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jloGY-0007yl-M6; Thu, 18 Jun 2020 06:43:15 +0000 From: Christoph Hellwig To: Andrew Morton Cc: Dexuan Cui , Vitaly Kuznetsov , Peter Zijlstra , Catalin Marinas , Will Deacon , Jessica Yu , x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 1/3] x86/hyperv: allocate the hypercall page with only read and execute bits Date: Thu, 18 Jun 2020 08:43:05 +0200 Message-Id: <20200618064307.32739-2-hch@lst.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200618064307.32739-1-hch@lst.de> References: <20200618064307.32739-1-hch@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Avoid a W^X violation cause by the fact that PAGE_KERNEL_EXEC includes the writable bit. For this resurrect the removed PAGE_KERNEL_RX definitіon, but as PAGE_KERNEL_ROX to match arm64 and powerpc. Fixes: 78bb17f76edc ("x86/hyperv: use vmalloc_exec for the hypercall page") Reported-by: Dexuan Cui Signed-off-by: Christoph Hellwig Tested-by: Vitaly Kuznetsov --- arch/x86/hyperv/hv_init.c | 4 +++- arch/x86/include/asm/pgtable_types.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c index a54c6a401581dd..2bdc72e6890eca 100644 --- a/arch/x86/hyperv/hv_init.c +++ b/arch/x86/hyperv/hv_init.c @@ -375,7 +375,9 @@ void __init hyperv_init(void) guest_id = generate_guest_id(0, LINUX_VERSION_CODE, 0); wrmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id); - hv_hypercall_pg = vmalloc_exec(PAGE_SIZE); + hv_hypercall_pg = __vmalloc_node_range(PAGE_SIZE, 1, VMALLOC_START, + VMALLOC_END, GFP_KERNEL, PAGE_KERNEL_ROX, + VM_FLUSH_RESET_PERMS, NUMA_NO_NODE, __func__); if (hv_hypercall_pg == NULL) { wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0); goto remove_cpuhp_state; diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h index 2da1f95b88d761..816b31c685505f 100644 --- a/arch/x86/include/asm/pgtable_types.h +++ b/arch/x86/include/asm/pgtable_types.h @@ -194,6 +194,7 @@ enum page_cache_mode { #define _PAGE_TABLE_NOENC (__PP|__RW|_USR|___A| 0|___D| 0| 0) #define _PAGE_TABLE (__PP|__RW|_USR|___A| 0|___D| 0| 0| _ENC) #define __PAGE_KERNEL_RO (__PP| 0| 0|___A|__NX|___D| 0|___G) +#define __PAGE_KERNEL_ROX (__PP| 0| 0|___A| 0|___D| 0|___G) #define __PAGE_KERNEL_NOCACHE (__PP|__RW| 0|___A|__NX|___D| 0|___G| __NC) #define __PAGE_KERNEL_VVAR (__PP| 0|_USR|___A|__NX|___D| 0|___G) #define __PAGE_KERNEL_LARGE (__PP|__RW| 0|___A|__NX|___D|_PSE|___G) @@ -219,6 +220,7 @@ enum page_cache_mode { #define PAGE_KERNEL_RO __pgprot_mask(__PAGE_KERNEL_RO | _ENC) #define PAGE_KERNEL_EXEC __pgprot_mask(__PAGE_KERNEL_EXEC | _ENC) #define PAGE_KERNEL_EXEC_NOENC __pgprot_mask(__PAGE_KERNEL_EXEC | 0) +#define PAGE_KERNEL_ROX __pgprot_mask(__PAGE_KERNEL_ROX | _ENC) #define PAGE_KERNEL_NOCACHE __pgprot_mask(__PAGE_KERNEL_NOCACHE | _ENC) #define PAGE_KERNEL_LARGE __pgprot_mask(__PAGE_KERNEL_LARGE | _ENC) #define PAGE_KERNEL_LARGE_EXEC __pgprot_mask(__PAGE_KERNEL_LARGE_EXEC | _ENC) -- 2.26.2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D83C3C433DF for ; Thu, 18 Jun 2020 06:43:51 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A97E720FC3 for ; Thu, 18 Jun 2020 06:43:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Gc5W1SHp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A97E720FC3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=90Mfz3UD6EK+PVM+ATUKQJFPfZrHcGSArjHGvFUqm2g=; b=Gc5W1SHpgeA3TH 7qfv6UJ8QCU4q2zr/1xAXkc24OyMQXu+AVjDZ/ahBG8aT1GE72lPVfMP1E3SXpxV2pkh+Lwa2qIZn c5u6UDdDVIMxja7JxMecC5VdA//Zwqra+aA+YBFYSCXQYSu/7JrPxDcMZJjKEU9uA0oY32oKQY0LS ZMueOTtHEagnx2PknVhwA2+7xTYDsVVw1y6U+538GupWCCNiB2QbSZWhbIGsaieRust3d/gsHx7wY 77qJLYqJMs/n4zbxzuCHxSLoes2D2xwEAXE6sPfsUQYxfX+2mziSbS0L/miphJ7dfshP5aUp/HQGD +0etrl4GY0LOyTsilgIQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jloH4-0008GR-EP; Thu, 18 Jun 2020 06:43:46 +0000 Received: from 195-192-102-148.dyn.cablelink.at ([195.192.102.148] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jloGY-0007yl-M6; Thu, 18 Jun 2020 06:43:15 +0000 From: Christoph Hellwig To: Andrew Morton Subject: [PATCH 1/3] x86/hyperv: allocate the hypercall page with only read and execute bits Date: Thu, 18 Jun 2020 08:43:05 +0200 Message-Id: <20200618064307.32739-2-hch@lst.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200618064307.32739-1-hch@lst.de> References: <20200618064307.32739-1-hch@lst.de> MIME-Version: 1.0 X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-hyperv@vger.kernel.org, Peter Zijlstra , Catalin Marinas , x86@kernel.org, Dexuan Cui , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Jessica Yu , Vitaly Kuznetsov , Will Deacon , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org QXZvaWQgYSBXXlggdmlvbGF0aW9uIGNhdXNlIGJ5IHRoZSBmYWN0IHRoYXQgUEFHRV9LRVJORUxf RVhFQyBpbmNsdWRlcyB0aGUKd3JpdGFibGUgYml0LgoKRm9yIHRoaXMgcmVzdXJyZWN0IHRoZSBy ZW1vdmVkIFBBR0VfS0VSTkVMX1JYIGRlZmluaXTRlm9uLCBidXQgYXMKUEFHRV9LRVJORUxfUk9Y IHRvIG1hdGNoIGFybTY0IGFuZCBwb3dlcnBjLgoKRml4ZXM6IDc4YmIxN2Y3NmVkYyAoIng4Ni9o eXBlcnY6IHVzZSB2bWFsbG9jX2V4ZWMgZm9yIHRoZSBoeXBlcmNhbGwgcGFnZSIpClJlcG9ydGVk LWJ5OiBEZXh1YW4gQ3VpIDxkZWN1aUBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBDaHJp c3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KVGVzdGVkLWJ5OiBWaXRhbHkgS3V6bmV0c292IDx2 a3V6bmV0c0ByZWRoYXQuY29tPgotLS0KIGFyY2gveDg2L2h5cGVydi9odl9pbml0LmMgICAgICAg ICAgICB8IDQgKysrLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIHwgMiAr KwogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9oeXBlcnYvaHZfaW5pdC5jIGIvYXJjaC94ODYvaHlwZXJ2L2h2X2lu aXQuYwppbmRleCBhNTRjNmE0MDE1ODFkZC4uMmJkYzcyZTY4OTBlY2EgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2h5cGVydi9odl9pbml0LmMKKysrIGIvYXJjaC94ODYvaHlwZXJ2L2h2X2luaXQuYwpA QCAtMzc1LDcgKzM3NSw5IEBAIHZvaWQgX19pbml0IGh5cGVydl9pbml0KHZvaWQpCiAJZ3Vlc3Rf aWQgPSBnZW5lcmF0ZV9ndWVzdF9pZCgwLCBMSU5VWF9WRVJTSU9OX0NPREUsIDApOwogCXdybXNy bChIVl9YNjRfTVNSX0dVRVNUX09TX0lELCBndWVzdF9pZCk7CiAKLQlodl9oeXBlcmNhbGxfcGcg PSB2bWFsbG9jX2V4ZWMoUEFHRV9TSVpFKTsKKwlodl9oeXBlcmNhbGxfcGcgPSBfX3ZtYWxsb2Nf bm9kZV9yYW5nZShQQUdFX1NJWkUsIDEsIFZNQUxMT0NfU1RBUlQsCisJCQlWTUFMTE9DX0VORCwg R0ZQX0tFUk5FTCwgUEFHRV9LRVJORUxfUk9YLAorCQkJVk1fRkxVU0hfUkVTRVRfUEVSTVMsIE5V TUFfTk9fTk9ERSwgX19mdW5jX18pOwogCWlmIChodl9oeXBlcmNhbGxfcGcgPT0gTlVMTCkgewog CQl3cm1zcmwoSFZfWDY0X01TUl9HVUVTVF9PU19JRCwgMCk7CiAJCWdvdG8gcmVtb3ZlX2NwdWhw X3N0YXRlOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5o IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oCmluZGV4IDJkYTFmOTViODhk NzYxLi44MTZiMzFjNjg1NTA1ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0 YWJsZV90eXBlcy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaApA QCAtMTk0LDYgKzE5NCw3IEBAIGVudW0gcGFnZV9jYWNoZV9tb2RlIHsKICNkZWZpbmUgX1BBR0Vf VEFCTEVfTk9FTkMJIChfX1BQfF9fUld8X1VTUnxfX19BfCAgIDB8X19fRHwgICAwfCAgIDApCiAj ZGVmaW5lIF9QQUdFX1RBQkxFCQkgKF9fUFB8X19SV3xfVVNSfF9fX0F8ICAgMHxfX19EfCAgIDB8 ICAgMHwgX0VOQykKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9STwkgKF9fUFB8ICAgMHwgICAwfF9f X0F8X19OWHxfX19EfCAgIDB8X19fRykKKyNkZWZpbmUgX19QQUdFX0tFUk5FTF9ST1gJIChfX1BQ fCAgIDB8ICAgMHxfX19BfCAgIDB8X19fRHwgICAwfF9fX0cpCiAjZGVmaW5lIF9fUEFHRV9LRVJO RUxfTk9DQUNIRQkgKF9fUFB8X19SV3wgICAwfF9fX0F8X19OWHxfX19EfCAgIDB8X19fR3wgX19O QykKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9WVkFSCSAoX19QUHwgICAwfF9VU1J8X19fQXxfX05Y fF9fX0R8ICAgMHxfX19HKQogI2RlZmluZSBfX1BBR0VfS0VSTkVMX0xBUkdFCSAoX19QUHxfX1JX fCAgIDB8X19fQXxfX05YfF9fX0R8X1BTRXxfX19HKQpAQCAtMjE5LDYgKzIyMCw3IEBAIGVudW0g cGFnZV9jYWNoZV9tb2RlIHsKICNkZWZpbmUgUEFHRV9LRVJORUxfUk8JCV9fcGdwcm90X21hc2so X19QQUdFX0tFUk5FTF9STyAgICAgICAgIHwgX0VOQykKICNkZWZpbmUgUEFHRV9LRVJORUxfRVhF QwlfX3BncHJvdF9tYXNrKF9fUEFHRV9LRVJORUxfRVhFQyAgICAgICB8IF9FTkMpCiAjZGVmaW5l IFBBR0VfS0VSTkVMX0VYRUNfTk9FTkMJX19wZ3Byb3RfbWFzayhfX1BBR0VfS0VSTkVMX0VYRUMg ICAgICAgfCAgICAwKQorI2RlZmluZSBQQUdFX0tFUk5FTF9ST1gJCV9fcGdwcm90X21hc2soX19Q QUdFX0tFUk5FTF9ST1ggICAgICAgIHwgX0VOQykKICNkZWZpbmUgUEFHRV9LRVJORUxfTk9DQUNI RQlfX3BncHJvdF9tYXNrKF9fUEFHRV9LRVJORUxfTk9DQUNIRSAgICB8IF9FTkMpCiAjZGVmaW5l IFBBR0VfS0VSTkVMX0xBUkdFCV9fcGdwcm90X21hc2soX19QQUdFX0tFUk5FTF9MQVJHRSAgICAg IHwgX0VOQykKICNkZWZpbmUgUEFHRV9LRVJORUxfTEFSR0VfRVhFQwlfX3BncHJvdF9tYXNrKF9f UEFHRV9LRVJORUxfTEFSR0VfRVhFQyB8IF9FTkMpCi0tIAoyLjI2LjIKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==