From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Thu, 21 Feb 2019 19:22:10 -0500 From: Steven Rostedt Subject: Re: [PATCH v3 18/20] x86/ftrace: Use vmalloc special flag Message-ID: <20190221192210.3e038fc3@gandalf.local.home> In-Reply-To: <20190221234451.17632-19-rick.p.edgecombe@intel.com> References: <20190221234451.17632-1-rick.p.edgecombe@intel.com> <20190221234451.17632-19-rick.p.edgecombe@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: Rick Edgecombe Cc: Andy Lutomirski , Ingo Molnar , linux-kernel@vger.kernel.org, x86@kernel.org, hpa@zytor.com, Thomas Gleixner , Borislav Petkov , Nadav Amit , Dave Hansen , Peter Zijlstra , linux_dti@icloud.com, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, akpm@linux-foundation.org, kernel-hardening@lists.openwall.com, linux-mm@kvack.org, will.deacon@arm.com, ard.biesheuvel@linaro.org, kristen@linux.intel.com, deneen.t.dock@intel.com List-ID: On Thu, 21 Feb 2019 15:44:49 -0800 Rick Edgecombe wrote: > 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: Steven Rostedt > Acked-by: Steven Rostedt (VMware) > Signed-off-by: Rick Edgecombe > --- > arch/x86/kernel/ftrace.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c > index 13c8249b197f..93efe3955333 100644 > --- a/arch/x86/kernel/ftrace.c > +++ b/arch/x86/kernel/ftrace.c > @@ -692,10 +692,6 @@ static inline void *alloc_tramp(unsigned long size) > } > static inline void tramp_free(void *tramp, int size) As size is no longer used within the function, can you remove that too. Thanks, -- Steve > { > - int npages = PAGE_ALIGN(size) >> PAGE_SHIFT; > - > - set_memory_nx((unsigned long)tramp, npages); > - set_memory_rw((unsigned long)tramp, npages); > module_memfree(tramp); > } > #else > @@ -820,6 +816,8 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size) > /* ALLOC_TRAMP flags lets us know we created it */ > ops->flags |= FTRACE_OPS_FL_ALLOC_TRAMP; > > + set_vm_flush_reset_perms(trampoline); > + > /* > * Module allocation needs to be completed by making the page > * executable. The page is still writable, which is a security hazard,