{"id":818316,"url":"http://patchwork.ozlabs.org/api/patches/818316/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/patch/9297528d3184e695e98129f4362a8f399b5783cf.1506089472.git.khalid.aziz@oracle.com/","project":{"id":10,"url":"http://patchwork.ozlabs.org/api/projects/10/?format=json","name":"Linux SPARC Development ","link_name":"sparclinux","list_id":"sparclinux.vger.kernel.org","list_email":"sparclinux@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<9297528d3184e695e98129f4362a8f399b5783cf.1506089472.git.khalid.aziz@oracle.com>","list_archive_url":null,"date":"2017-09-25T16:48:59","name":"[v8,8/9] mm: Clear arch specific VM flags on protection change","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":false,"hash":"752e5b66a294eb926d9d89b61b1697042952fb9f","submitter":{"id":42386,"url":"http://patchwork.ozlabs.org/api/people/42386/?format=json","name":"Khalid Aziz","email":"khalid.aziz@oracle.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/sparclinux/patch/9297528d3184e695e98129f4362a8f399b5783cf.1506089472.git.khalid.aziz@oracle.com/mbox/","series":[{"id":4990,"url":"http://patchwork.ozlabs.org/api/series/4990/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/list/?series=4990","date":"2017-09-25T16:48:55","name":"Application Data Integrity feature introduced by SPARC M7","version":8,"mbox":"http://patchwork.ozlabs.org/series/4990/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/818316/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/818316/checks/","tags":{},"related":[],"headers":{"Return-Path":"<sparclinux-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=sparclinux-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y19B41YDtz9t62\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 26 Sep 2017 02:52:44 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S936340AbdIYQwf (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 25 Sep 2017 12:52:35 -0400","from aserp1040.oracle.com ([141.146.126.69]:41204 \"EHLO\n\taserp1040.oracle.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S935745AbdIYQwd (ORCPT\n\t<rfc822; sparclinux@vger.kernel.org>); Mon, 25 Sep 2017 12:52:33 -0400","from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233])\n\tby aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2)\n\twith ESMTP id v8PGpCm8021204\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Mon, 25 Sep 2017 16:51:13 GMT","from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236])\n\tby aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id\n\tv8PGpC72017580\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Mon, 25 Sep 2017 16:51:12 GMT","from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25])\n\tby aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id\n\tv8PGpAhq014202; Mon, 25 Sep 2017 16:51:10 GMT","from concerto.us.oracle.com (/24.9.64.241)\n\tby default (Oracle Beehive Gateway v4.0)\n\twith ESMTP ; Mon, 25 Sep 2017 09:51:10 -0700"],"From":"Khalid Aziz <khalid.aziz@oracle.com>","To":"akpm@linux-foundation.org, dave.hansen@linux.intel.com","Cc":"Khalid Aziz <khalid.aziz@oracle.com>, mhocko@suse.com,\n\tdavem@davemloft.net, jack@suse.cz, kirill.shutemov@linux.intel.com,\n\tross.zwisler@linux.intel.com, lstoakes@gmail.com,\n\tdave.jiang@intel.com, willy@infradead.org, hughd@google.com,\n\tying.huang@intel.com, n-horiguchi@ah.jp.nec.com,\n\theiko.carstens@de.ibm.com, mgorman@suse.de, aarcange@redhat.com,\n\tak@linux.intel.com, aneesh.kumar@linux.vnet.ibm.com,\n\tlinux-mm@kvack.org, linux-kernel@vger.kernel.org,\n\tsparclinux@vger.kernel.org, Khalid Aziz <khalid@gonehiking.org>","Subject":"[PATCH v8 8/9] mm: Clear arch specific VM flags on protection change","Date":"Mon, 25 Sep 2017 10:48:59 -0600","Message-Id":"<9297528d3184e695e98129f4362a8f399b5783cf.1506089472.git.khalid.aziz@oracle.com>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":["<cover.1506089472.git.khalid.aziz@oracle.com>","<cover.1506089472.git.khalid.aziz@oracle.com>"],"References":["<cover.1506089472.git.khalid.aziz@oracle.com>","<cover.1506089472.git.khalid.aziz@oracle.com>"],"X-Source-IP":"aserv0021.oracle.com [141.146.126.233]","Sender":"sparclinux-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<sparclinux.vger.kernel.org>","X-Mailing-List":"sparclinux@vger.kernel.org"},"content":"When protection bits are changed on a VMA, some of the architecture\nspecific flags should be cleared as well. An examples of this are the\nPKEY flags on x86. This patch expands the current code that clears\nPKEY flags for x86, to support similar functionality for other\narchitectures as well.\n\nSigned-off-by: Khalid Aziz <khalid.aziz@oracle.com>\nCc: Khalid Aziz <khalid@gonehiking.org>\n---\nv7:\n\t- new patch\n\n include/linux/mm.h | 6 ++++++\n mm/mprotect.c      | 2 +-\n 2 files changed, 7 insertions(+), 1 deletion(-)","diff":"diff --git a/include/linux/mm.h b/include/linux/mm.h\nindex c1f6c95f3496..cbb21facce6b 100644\n--- a/include/linux/mm.h\n+++ b/include/linux/mm.h\n@@ -271,6 +271,12 @@ extern unsigned int kobjsize(const void *objp);\n /* This mask is used to clear all the VMA flags used by mlock */\n #define VM_LOCKED_CLEAR_MASK\t(~(VM_LOCKED | VM_LOCKONFAULT))\n \n+/* Arch-specific flags to clear when updating VM flags on protection change */\n+#ifndef VM_ARCH_CLEAR\n+# define VM_ARCH_CLEAR\tVM_NONE\n+#endif\n+#define VM_FLAGS_CLEAR\t(ARCH_VM_PKEY_FLAGS | VM_ARCH_CLEAR)\n+\n /*\n  * mapping from the currently active vm_flags protection bits (the\n  * low four bits) to a page protection mask..\ndiff --git a/mm/mprotect.c b/mm/mprotect.c\nindex 4f0e46bb1797..85b65b3a823d 100644\n--- a/mm/mprotect.c\n+++ b/mm/mprotect.c\n@@ -453,7 +453,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len,\n \t\t * cleared from the VMA.\n \t\t */\n \t\tmask_off_old_flags = VM_READ | VM_WRITE | VM_EXEC |\n-\t\t\t\t\tARCH_VM_PKEY_FLAGS;\n+\t\t\t\t\tVM_FLAGS_CLEAR;\n \n \t\tnew_vma_pkey = arch_override_mprotect_pkey(vma, prot, pkey);\n \t\tnewflags = calc_vm_prot_bits(prot, new_vma_pkey);\n","prefixes":["v8","8/9"]}