Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp338562yba; Fri, 26 Apr 2019 00:33:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqwwJAkiTwyTTfJFiO/8XOfyC4lvsrUqVSlV8YsDjdLz4+4tPDcvcvvuSRvrBdP5YdzwvkUE X-Received: by 2002:a63:5715:: with SMTP id l21mr14354966pgb.279.1556264030360; Fri, 26 Apr 2019 00:33:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556264030; cv=none; d=google.com; s=arc-20160816; b=UFw4UUpZnGVD5HzKd/sPAK+71k06XFDRbOi7qXeI2Ub+GsqSQVTy4fLlYnqUCkrfy7 RUXOVZlWkFIQMfPszIF20fjtRS8Vn80FhMRFXo0esB5W42fQB957aLNQYT+GCJI8AslJ R4fpQNDYVcU2YduigdJtlB/8Lv6UfMPKIqA2RrWvrssLPfIEaju52CkLHdLYUgzyxSpS up5gI+02EkgRe/zkwhE3/3kt0e2Zmpxyo2/zCqm7IT+Q1L+0fplw4B4hllYxbk+9cRGL 2bRCOWZhmpHP5I4Ffl9Ob6uxs92EK1aDYgPdxt7F/FhynC7jNUMCSbHTmtQdMEZ07OtX mYiw== 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=PMP2Cxb893S0prGS0vCi085zHCDPTtmjtSNHdboWACs=; b=nI1D97FRPetpE3RiOpBsXKcQFQ1edjnEiQdnYcuaEFmYJ1kAmecqnrDD+L4aGBKtA8 x+VF/cNR6THS+bZQYk3y60V8UNAbptViYCbk25J94RD7QNGDGbcw/K5spRH9X/1QV9BX +BKGDlklIcWwAkH3HZUAeM/MDLMnGk+vVM8lFPEy/uowwP1abVER+mzslSTCKMm0/aJx /Qmn463HBLPucWiYBzj+IVO4KcVpsD3V26AuyLeUe8G6uxR2Hi5hevuywlbOffUmfkCR N0PNQQe9w0JTLm7kxd+6jTZNczDVpr4mBN2hh/xSULS6OH3SFiyMVD+pomP4qIk1Ww8l DpQw== 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=QUARANTINE 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 72si24529263plb.165.2019.04.26.00.33.35; Fri, 26 Apr 2019 00:33:50 -0700 (PDT) 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=QUARANTINE sp=NONE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726561AbfDZHc1 (ORCPT + 99 others); Fri, 26 Apr 2019 03:32:27 -0400 Received: from ex13-edg-ou-002.vmware.com ([208.91.0.190]:29121 "EHLO EX13-EDG-OU-002.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726402AbfDZHcY (ORCPT ); Fri, 26 Apr 2019 03:32:24 -0400 Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-002.vmware.com (10.113.208.156) with Microsoft SMTP Server id 15.0.1156.6; Fri, 26 Apr 2019 00:31:45 -0700 Received: from sc2-haas01-esx0118.eng.vmware.com (sc2-haas01-esx0118.eng.vmware.com [10.172.44.118]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 186974129C; Fri, 26 Apr 2019 00:31:46 -0700 (PDT) From: Nadav Amit To: Peter Zijlstra , Borislav Petkov , Andy Lutomirski , Ingo Molnar CC: , , , Thomas Gleixner , Nadav Amit , Dave Hansen , , , , , , , , , , , Rick Edgecombe , Masami Hiramatsu Subject: [PATCH v5 20/23] x86/kprobes: Use vmalloc special flag Date: Thu, 25 Apr 2019 17:11:40 -0700 Message-ID: <20190426001143.4983-21-namit@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190426001143.4983-1-namit@vmware.com> References: <20190426001143.4983-1-namit@vmware.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: None (EX13-EDG-OU-002.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 From: Rick Edgecombe Use new flag VM_FLUSH_RESET_PERMS for handling freeing of special permissioned memory in vmalloc and remove places where memory was set NX and RW before freeing which is no longer needed. Cc: Masami Hiramatsu Signed-off-by: Rick Edgecombe --- arch/x86/kernel/kprobes/core.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c index 1591852d3ac4..136695e4434a 100644 --- a/arch/x86/kernel/kprobes/core.c +++ b/arch/x86/kernel/kprobes/core.c @@ -434,6 +434,7 @@ void *alloc_insn_page(void) if (!page) return NULL; + set_vm_flush_reset_perms(page); /* * First make the page read-only, and only then make it executable to * prevent it from being W+X in between. @@ -452,12 +453,6 @@ void *alloc_insn_page(void) /* Recover page to RW mode before releasing it */ void free_insn_page(void *page) { - /* - * First make the page non-executable, and only then make it writable to - * prevent it from being W+X in between. - */ - set_memory_nx((unsigned long)page, 1); - set_memory_rw((unsigned long)page, 1); module_memfree(page); } -- 2.17.1