• Rick Edgecombe's avatar
    modules: Use vmalloc special flag · 1a7b7d92
    Rick Edgecombe authored
    Use new flag for handling freeing of special permissioned memory in vmalloc
    and remove places where memory was set RW before freeing which is no longer
    needed.
    
    Since freeing of VM_FLUSH_RESET_PERMS memory is not supported in an
    interrupt by vmalloc, the freeing of init sections is moved to a work
    queue. Instead of call_rcu it now uses synchronize_rcu() in the work
    queue.
    
    Lastly, there is now a WARN_ON in module_memfree since it should not be
    called in an interrupt with special memory as is required for
    VM_FLUSH_RESET_PERMS.
    Signed-off-by: default avatarRick Edgecombe <rick.p.edgecombe@intel.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: <akpm@linux-foundation.org>
    Cc: <ard.biesheuvel@linaro.org>
    Cc: <deneen.t.dock@intel.com>
    Cc: <kernel-hardening@lists.openwall.com>
    Cc: <kristen@linux.intel.com>
    Cc: <linux_dti@icloud.com>
    Cc: <will.deacon@arm.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Nadav Amit <nadav.amit@gmail.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/20190426001143.4983-18-namit@vmware.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    1a7b7d92
module.c 113 KB