Message ID | 20190221234451.17632-19-rick.p.edgecombe@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Merge text_poke fixes and executable lockdowns | expand |
On Thu, 21 Feb 2019 15:44:49 -0800 Rick Edgecombe <rick.p.edgecombe@intel.com> 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 <rostedt@goodmis.org> > Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> > --- > 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,
On Thu, 2019-02-21 at 19:22 -0500, Steven Rostedt wrote: > On Thu, 21 Feb 2019 15:44:49 -0800 > Rick Edgecombe <rick.p.edgecombe@intel.com> 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 <rostedt@goodmis.org> > > Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > > Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> > > --- > > 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 > Good point, I'll remove it. Thanks, Rick [snip]
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) { - 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,