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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 793AFC05027 for ; Thu, 26 Jan 2023 09:18:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E8B586B0071; Thu, 26 Jan 2023 04:18:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DC4C28E0001; Thu, 26 Jan 2023 04:18:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC89A6B0071; Thu, 26 Jan 2023 04:18:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 990E76B0071 for ; Thu, 26 Jan 2023 04:18:07 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 6D5C71C604F for ; Thu, 26 Jan 2023 09:18:07 +0000 (UTC) X-FDA: 80396398614.16.945EADD Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf26.hostedemail.com (Postfix) with ESMTP id 2A20D14000F; Thu, 26 Jan 2023 09:18:04 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=sky5enLF; spf=pass (imf26.hostedemail.com: domain of rppt@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674724685; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=h2GT4+WZ8jGJqzdU7QXUBHwNvKESwP4EBaI52fm4yVY=; b=Ip7DhdsRodBH1waLgdYvEm34zNVlS6D6FG3iWrcurymprncuY10J+cZRdxEfrr2E+mmp2n oZ1+LVx9u/ddxtUFutkUPqAyqs1ej+FWP0lqGgLcHDvm6HEGUAAz/sq8hT0uDTK+ToTGEz cMQpp9WBZ/0aJyjydFjjzVf5pcafwtQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=sky5enLF; spf=pass (imf26.hostedemail.com: domain of rppt@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674724685; a=rsa-sha256; cv=none; b=O/e0quaMnjWKsA17586QatgARHsqa9D97go45hhMUfzKmsMyg/35RMBzoRiB7ouCkiwTQc qUp4qNMcN3e2v1cC926r5rtNTk2gmYy6J+4+gW0yUp/IKIqaS7FUOxmWnOwgQHrBJf4oBd DcB1+/nAgIrPsVGXyCTa+2PzH4zIn7Q= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C2FD8B818BE; Thu, 26 Jan 2023 09:18:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B686C433EF; Thu, 26 Jan 2023 09:17:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1674724682; bh=A3jqgSV9WUxdb3ZkujtLcqAQwnfqkoU5ybDSQdNw5cg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sky5enLFwJr3DfJ9b2ymbv/d7rE2oypuJvDM2cNeWmTa68+LJkoJeMjxMVF911xjR /p46Fe2/pbyCsXipax42/Hou3ZWrY6fA7yy3y0E4tly4hSn7A+WSEbwQZyXAjmF/fy t3crMkotzOdGBKQN+I5JbdstqSnsQJbVUv4CaD/JnI/YsWTl+N0fRV5BPO+OqFre41 7ERJV1xNKFLVanuVeJ94drHEBHBdP99mIJAbLamNbCF2r05esRYyfEqSbQFmRXAtIl xm2AXIIoDKu6q2SCf9/o5Ej3L+rCFY/nYnTN8yhQCyREfEIhRdSCFxGuw7sIOiHW7k L6KyLx8xuXeew== Date: Thu, 26 Jan 2023 11:17:09 +0200 From: Mike Rapoport To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, paulmck@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, hughlynch@google.com, leewalsh@google.com, posk@google.com, will@kernel.org, aneesh.kumar@linux.ibm.com, npiggin@gmail.com, chenhuacai@kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, qianweili@huawei.com, wangzhou1@hisilicon.com, herbert@gondor.apana.org.au, davem@davemloft.net, vkoul@kernel.org, airlied@gmail.com, daniel@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, l.stach@pengutronix.de, krzysztof.kozlowski@linaro.org, patrik.r.jakobsson@gmail.com, matthias.bgg@gmail.com, robdclark@gmail.com, quic_abhinavk@quicinc.com, dmitry.baryshkov@linaro.org, tomba@kernel.org, hjc@rock-chips.com, heiko@sntech.de, ray.huang@amd.com, kraxel@redhat.com, sre@kernel.org, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, tfiga@chromium.org, m.szyprowski@samsung.com, mchehab@kernel.org, dimitri.sivanich@hpe.com, zhangfei.gao@linaro.org, jejb@linux.ibm.com, martin.petersen@oracle.com, dgilbert@interlog.com, hdegoede@redhat.com, mst@redhat.com, jasowang@redhat.com, alex.williamson@redhat.com, deller@gmx.de, jayalk@intworks.biz, viro@zeniv.linux.org.uk, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, miklos@szeredi.hu, mike.kravetz@oracle.com, muchun.song@linux.dev, bhe@redhat.com, andrii@kernel.org, yoshfuji@linux-ipv6.org, dsahern@kernel.org, kuba@kernel.org, pabeni@redhat.com, perex@perex.cz, tiwai@suse.com, haojian.zhuang@gmail.com, robert.jarzmik@free.fr, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-graphics-maintainer@vmware.com, linux-ia64@vger.kernel.org, linux-arch@vger.kernel.org, loongarch@lists.linux.dev, kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-sgx@vger.kernel.org, linux-um@lists.infradead.org, linux-acpi@vger.kernel.org, linux-crypto@vger.kernel.org, nvdimm@lists.linux.dev, dmaengine@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, etnaviv@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org, virtualization@lists.linux-foundation.org, xen-devel@lists.xenproject.org, linux-stm32@st-md-mailman.stormreply.com, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, linux-accelerators@lists.ozlabs.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-staging@lists.linux.dev, target-devel@vger.kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-aio@kvack.org, linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, devel@lists.orangefs.org, kexec@lists.infradead.org, linux-xfs@vger.kernel.org, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, kasan-dev@googlegroups.com, selinux@vger.kernel.org, alsa-devel@alsa-project.org, kernel-team@android.com Subject: Re: [PATCH v2 1/6] mm: introduce vma->vm_flags modifier functions Message-ID: References: <20230125083851.27759-1-surenb@google.com> <20230125083851.27759-2-surenb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230125083851.27759-2-surenb@google.com> X-Stat-Signature: 9byr4em4p9i3r577isi94nh9cda49iyj X-Rspam-User: X-Rspamd-Queue-Id: 2A20D14000F X-Rspamd-Server: rspam06 X-HE-Tag: 1674724684-629177 X-HE-Meta: U2FsdGVkX1/hXpUOYD5uqthGvn7su3Lrtq7R+d9hWy6a3iHRAyOrziuOG8RtdtPRUiH6Xh5jr9l+QiOUfDBI5DQR/Nun6QWfStrmcEtTCCletNEkFR/l/5iNi0q6jF0q1hj++Hu6HDsQKhP1CPBdxyK+mlui7/ZO0IQODVKTvN+RBcFR7QjQklakob4PuEPvDQ23cQub1Q7XLZZnewsIghCMQ6wK72Wnkh1K30t4PSUAEyC0/vsX8Hx2RpeBJD1iAo08bR5GOF4KVa6wkwrz1idIVonFX4hybIMIy29VawbAI77EdlWAxuRcq4kPTK27cUYOSXJ7IYyzi/S9tV8IL3DgjOlVR49m/yz69c/+oI7SvUxynBkzx5VNw2qEK0mmah3qGQwHrYyq5aT8sgXEBNOU0FyqZ8hLO8AGewYCG5H7qPUSSlTgt+qVopmjoViWhmEJ0OQNAQuu0OZXTikFUt11w20sEbtE5Khf8hvkOEAlfxWVjkGYL5bxxjSYUrMocmLenmCX+U9Wzf47g9W78chrePZSYAHal//zuNfQbmnw7BAuLtK82oPjb6P+BsrYABrXv+hONRARSuD3+Tj8zvVF1trnyiuVXb3ha08SUm2j9+u/s6oq2mEznN1ai0aGwGyCqXdcvRpYP06OWs0ss4MfFUgbO84bt+Q7FZsuzg8IXCIBLVyRlVzBDfXyn/X4qdoGpAtmCZkMIEB2uEyX6wMVtyxIjjD2zxfKYqfP5kJigdgsdyPg0sIS9iV/ASy6js9XgaFpVdDTgfOsrNCCi8dmFsip/p70Tvg/QcYNcjZR4/iRQdV0h/BhUSAMbNyMBcLpiuMOX+6dsBHMyfGMJK/CHpPuH8WeKIybTiTb8bm+6DC5tHfZKgdnOplcnyWzuHDn+3X74zKf1ZPEx/uM3wNAvvpvTaw2WPQqCJP7oIDbwVl3xjncEHydWPPyIllQvma9fkWIpGO9Rd5yjOO bmYdVhW9 zQmcdq7oPkuV8VJFvMn7C7Yeg88aNkzmV4rHBKvqhHSjwcv3gMzCegVuZWwmnddwcu54zcpx+OmyZ8IlmzKk3ha1Uy2DdaV/zwfd9bRlxHVw6qhRAdMQ2HKNAF5dX1FOrqWen99oFDvQkY4CYQn12MMjYxlc4J8K2ce1d/MTiFZ0cCxfvvnG6RXwWTOeoVqUPuxg2wStRQgUIw9a9zRnqqVuq/Eudr315hY6u5SHdMkJzea0RaDl6kPOWEtHmJ9RPI6Vv24DPle6scW6Aiy0XFoIA7PGLVdhZQFjuq2XaGhVYAQDXi1Zybt+FFUtpey2EmByj9U3AMLQPFDZLhw3fD1jtytePfzvkj7SHfG78hbssX7SrQXl/KrBS943019yUq8MK8fI0anBZ0Dik3/IbMFrTHkJYReGhV9+ntfzOSRQ6SXa7ZaoqlS1rCxMrVmV50HspzvnPgWKxNrYBT0CVkeg+R1xdGZfooqyOStrwcT9eRJsPa1YDvaC6dc2hOF1K9wE2bBqzNX0Tbw/p6sOIvLiELGgXeIwlfh+CONCHtsWKs1XRnLaUkltV5APaOveoDsV9ncEBG3ubAxyBNgx1Fr5AWnqVxgfVfMIwPN+8EfJBMIosqFnz4xbl1Z97UlCbtK8vTri0UaTghenamfMwVhKpKjNiQIbGjnmsSVNOgCQkfQzslGAUwPIbBGoLTZyJ6QcRRr7yYZ9qYoD4MhQTF4Xn0/qEISXGltSILhibLxHNWJlmGL2Hh65QKh8z5DgB3w++LbkxqjA03l7oxjOF/v7ifZOxN87Dt1FlpWwezrh17FDDS4qHBa22QzIoE3tgKwRGJOP0fMA9I/E0ed+nrpE5W/hiR1jzoWEZzus6P3sIry+EuJPOud9Fs8pHX6GH/i6iLP3Um6q4WE5cUj8v0lsDarJHiVFXeQAwKn0tI/9UqUCm2NozpP1wnHUWHCZ4TsNDFw0G7Znd5Vtim1fBiFjIjPEK VCum3cSd AExSeEDih7L+VmyXdFolcY+ma1yfxQH7uZRP1ckgFUCZiizzVGihWxBy5CI7dgPZWrcxSYQ450PLBcxrbUte9gAEUX31lNXw1ljreaICKOpirZtP1MAp97qatqWR7MxIt9Gq0TzdDHp3cFEUxq/F5kIHzoZJ8knhcRE4c1KEj719h2eTjAYEb/Pfog2MmuzS1+snaIJ5/2OmoY6ZIMiaYvD5K+1vnBK0G5H+53Q+cdLRPNEAPt5V+d8HTtOTmfzkAgTy+94gFOHr4CpIPYIbKjsdODK6bPUTDZn5RuwYFZsDFnzhHL7d/ziKCCZZM0OxJEseIGVj9thKTBxt+PyVFa+H6SRIGva8Qm3Gt/ek+fdu+lcQYWoWeTwDdWiXhELlVQIfqElNvEW9dDCUZX3mVbk0TLu/46wFzrxe3u1uiwh7ANHJXy30Or1ioM3i/AZgbXu0sXnOhzEsnyUowtaQEvHR4+SXGH9Ft+tqbyPI/rJqYbujtBSi0twEPQ1p8sZYKXt5lxkWWGXi2wn2G+3IxStLuBjntjWwkMHK87EZcMsPtykAcgy2/62Y5yMIDOzMqgMqrtTkXQf7ZoFVe4GfyISBQA5S4HKRCjQEr1QR+lcZYxXnW7m3lLx73IxgB9YX2ifvz15mNvkMTQVGFfiivKDwpa6uH0EJhh70GPlGIKirvp4JfHvES4hSntIPJpOkSxWkvTHzAgU32h0jC0WuL6wHzx7POEReIYh7ckhB0QQiSV8yrC340Q6I3et0siUrofpisSTzd/vMlr6mp7ohCkxDrmcny7jKYnIdR3fZaFYyUcyRVz90ru9KRv60bjg1L5zFeWzf7KUovl7dGXghj7EumvCu9PHMAq1SobBRKBXDFDK6vcKYEsLcF3zvBCnITM15ivL/fiG4Gdl//Mlr4zE6wVKunnjgO66pWOien6h6MG+Stz+Xlel3d5V1vvdhGJiHynnDJJg579E1R9pxyKiqcnDf/ Mkr/5i5B 6rpUsN1ofHqVtKxmhDAOJ3eba/vcOVgpdGXaJfZXIxaSnw2JU46Nvqc4onQG2JYB9x67W18+urJEMVz4n/Xm3INAWhg4WtkyXIONwKSnylfg7iyxiLErG9fTXEjyYl0nF5vw/BsfTs/5K80e/9HNcqP/4qfZMDUcJXHrVAnB7q7w54OpHg0JboM11hovamQE6+vi8tN0eaphDzpl6o1d0+bIWHiMngv3uZl2lA28S9NzPb5HpFQ9grPngrCgUfXjKQSLQoDHY51anM7CL6WADtvoORwaLI9qvkn28fmXX1eMC3ifSHM2TPd21JvQ1Fmz4A+RdECz+a403ek01RTCS8T0ebKQrV4mLC0kQB6okqtvAq56u6UU13wu2THRFlCyKjO/F+30fJL5lSeFMo45CZA4FIx9wSICwX0I9QnpfaNCEXBkL8/nV43yBYKV0mj/qdnbScONcPTb+hXQFV+XM7eFa6J6T3DK7l33eXsWXBjW0QHnXSYEl2A7p58+K0p6JCBbhAv2wDD0Ei5HePZcKGrE+coFczyqziTeEDTasGr1QQ1XZTaNqYZM7Kj0VqvdtOqeRK0Ux2KQZSr1MEOK6Lz3/KZMCGwFs/HUoPuQ4JdIkXHa2fbMsQZg1zvrwwq3RIepnjOwIB+luFom8YI9uzsLD70zwQ1Z08uIUJSKVH90QhoJnORroRjn2IVV8EqqSUKaPUdU7Egdm6+DHw4av5zDSOOokfpiGQh1peBClvVoVp97OZfkq/Dro49CRVsbTfCcMOrjjG7WjVck3xjlQ1+VZrmn5rKGZDpGIget1L1UVfcWeXUZCbTdHQKRhttEvo5fVZIVAGHHODCsfPStBKMSn07cjvVVSgqPVtiSeTBfnla5mEnBNgKC7mUNVMMjCw0aQzM85B1rUsDG/2AlZy35gAjhD8+NkDDkqm60umkNY9SP0FBBObg1uDLIg3dMI4LWGpc/l9Ykjbq3R9Mm+0IgnaXMB XrMKFpTb wXSkaK1xva67CYxqH0nuuM/pXS3RP3oG2ORGpIq0FMIIulwp32hOzfGcwOJN1Gzs8BYHcIEpd0m+QUNCJayIntoEybD1Sp9wX++94Zh2FoNSUfCwM1M2Tp1KobP/p3FAqIKpoFZfSlDHMaJsHfgC2342ruK07EhGEMkuqqv2Rh3t94oWJwr8Bu59esxnPWQbejF9tLcJOwfr9Ino9oU/VA19UOAykW3ESdiWIYwf6GliuypmRBWamtZjxUUBsQoY++o9iQeUtWNHPAUGfJrE/Hu0uyU+saEsstr6t0N0XWkjcPihTnS4S9OMJQoEhr6+gaW7CzCWrrt63Hkte69LotA8t+I910GlS5byLNrE0PhtfSx0Sj18diCNQKZdGpGfkShO2RGQp4ZF0/h9pVmuRJf0eAIzVqME1sZUmRPGaDOeIOVNQWR+NQ+hg15/1wJSFansehJAvhexnZJT1bPjKb2GiB2ZmOdWBT1TANUNlqRMlWcKjndh4HpR9MxcejShfZnf5PtmWdDd8Tm6QWd5OVBS2oSrjmxLHhFtSVCM23b4xcwuWfe4emjtJ2tBje+krFVjHzyaKcN1hpxZwenCM2ncYa5S6hr34= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Jan 25, 2023 at 12:38:46AM -0800, Suren Baghdasaryan wrote: > vm_flags are among VMA attributes which affect decisions like VMA merging > and splitting. Therefore all vm_flags modifications are performed after > taking exclusive mmap_lock to prevent vm_flags updates racing with such > operations. Introduce modifier functions for vm_flags to be used whenever > flags are updated. This way we can better check and control correct > locking behavior during these updates. > > Signed-off-by: Suren Baghdasaryan > --- > include/linux/mm.h | 37 +++++++++++++++++++++++++++++++++++++ > include/linux/mm_types.h | 8 +++++++- > 2 files changed, 44 insertions(+), 1 deletion(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index c2f62bdce134..b71f2809caac 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -627,6 +627,43 @@ static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm) > INIT_LIST_HEAD(&vma->anon_vma_chain); > } > > +/* Use when VMA is not part of the VMA tree and needs no locking */ > +static inline void init_vm_flags(struct vm_area_struct *vma, > + unsigned long flags) I'd suggest to make it vm_flags_init() etc. Except that Acked-by: Mike Rapoport (IBM) > +{ > + vma->vm_flags = flags; > +} > + > +/* Use when VMA is part of the VMA tree and modifications need coordination */ > +static inline void reset_vm_flags(struct vm_area_struct *vma, > + unsigned long flags) > +{ > + mmap_assert_write_locked(vma->vm_mm); > + init_vm_flags(vma, flags); > +} > + > +static inline void set_vm_flags(struct vm_area_struct *vma, > + unsigned long flags) > +{ > + mmap_assert_write_locked(vma->vm_mm); > + vma->vm_flags |= flags; > +} > + > +static inline void clear_vm_flags(struct vm_area_struct *vma, > + unsigned long flags) > +{ > + mmap_assert_write_locked(vma->vm_mm); > + vma->vm_flags &= ~flags; > +} > + > +static inline void mod_vm_flags(struct vm_area_struct *vma, > + unsigned long set, unsigned long clear) > +{ > + mmap_assert_write_locked(vma->vm_mm); > + vma->vm_flags |= set; > + vma->vm_flags &= ~clear; > +} > + > static inline void vma_set_anonymous(struct vm_area_struct *vma) > { > vma->vm_ops = NULL; > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index 2d6d790d9bed..6c7c70bf50dd 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -491,7 +491,13 @@ struct vm_area_struct { > * See vmf_insert_mixed_prot() for discussion. > */ > pgprot_t vm_page_prot; > - unsigned long vm_flags; /* Flags, see mm.h. */ > + > + /* > + * Flags, see mm.h. > + * WARNING! Do not modify directly. > + * Use {init|reset|set|clear|mod}_vm_flags() functions instead. > + */ > + unsigned long vm_flags; > > /* > * For areas with an address space and backing store, > -- > 2.39.1 > >