Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 25 Jan 2023 18:37:36 +0000 | From | Matthew Wilcox <> | Subject | Re: [PATCH v2 1/6] mm: introduce vma->vm_flags modifier functions |
| |
On Wed, Jan 25, 2023 at 08:49:50AM -0800, Suren Baghdasaryan wrote: > On Wed, Jan 25, 2023 at 1:10 AM Peter Zijlstra <peterz@infradead.org> wrote: > > > + /* > > > + * Flags, see mm.h. > > > + * WARNING! Do not modify directly. > > > + * Use {init|reset|set|clear|mod}_vm_flags() functions instead. > > > + */ > > > + unsigned long vm_flags; > > > > We have __private and ACCESS_PRIVATE() to help with enforcing this. > > Thanks for pointing this out, Peter! I guess for that I'll need to > convert all read accesses and provide get_vm_flags() too? That will > cause some additional churt (a quick search shows 801 hits over 248 > files) but maybe it's worth it? I think Michal suggested that too in > another patch. Should I do that while we are at it?
Here's a trick I saw somewhere in the VFS:
union { const vm_flags_t vm_flags; vm_flags_t __private __vm_flags; };
Now it can be read by anybody but written only by those using ACCESS_PRIVATE.
| ![\](/images/icornerr.gif) |