On Wed, 25 Jan 2023 15:35:49 -0800 Suren Baghdasaryan <surenb@xxxxxxxxxx> wrote: > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -491,7 +491,15 @@ 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. > + * To modify use {init|reset|set|clear|mod}_vm_flags() functions. > + */ > + union { > + const vm_flags_t vm_flags; > + vm_flags_t __private __vm_flags; > + }; Typically when making a change like this we'll rename the affected field/variable/function/etc. This will reliably and deliberately break unconverted usage sites. This const trick will get us partway there, by breaking setters. But renaming it will break both setters and getters.