Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nick kvfree() from apparmor

too many places open-code it

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 39f1f78d 50c6e282

+12 -15
+2
include/linux/mm.h
··· 370 370 } 371 371 #endif 372 372 373 + extern void kvfree(const void *addr); 374 + 373 375 static inline void compound_lock(struct page *page) 374 376 { 375 377 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
+10
mm/util.c
··· 10 10 #include <linux/swapops.h> 11 11 #include <linux/mman.h> 12 12 #include <linux/hugetlb.h> 13 + #include <linux/vmalloc.h> 13 14 14 15 #include <asm/uaccess.h> 15 16 ··· 387 386 return vm_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT); 388 387 } 389 388 EXPORT_SYMBOL(vm_mmap); 389 + 390 + void kvfree(const void *addr) 391 + { 392 + if (is_vmalloc_addr(addr)) 393 + vfree(addr); 394 + else 395 + kfree(addr); 396 + } 397 + EXPORT_SYMBOL(kvfree); 390 398 391 399 struct address_space *page_mapping(struct page *page) 392 400 {
-1
security/apparmor/include/apparmor.h
··· 66 66 char *aa_split_fqname(char *args, char **ns_name); 67 67 void aa_info_message(const char *str); 68 68 void *__aa_kvmalloc(size_t size, gfp_t flags); 69 - void kvfree(void *buffer); 70 69 71 70 static inline void *kvmalloc(size_t size) 72 71 {
-14
security/apparmor/lib.c
··· 104 104 } 105 105 return buffer; 106 106 } 107 - 108 - /** 109 - * kvfree - free an allocation do by kvmalloc 110 - * @buffer: buffer to free (MAYBE_NULL) 111 - * 112 - * Free a buffer allocated by kvmalloc 113 - */ 114 - void kvfree(void *buffer) 115 - { 116 - if (is_vmalloc_addr(buffer)) 117 - vfree(buffer); 118 - else 119 - kfree(buffer); 120 - }