bool is_vmalloc_addr(const void *x)
 {
-       unsigned long addr = (unsigned long)x;
+       unsigned long addr = (unsigned long)kasan_reset_tag(x);
 
        return addr >= VMALLOC_START && addr < VMALLOC_END;
 }
         * just put it in the vmalloc space.
         */
 #if defined(CONFIG_MODULES) && defined(MODULES_VADDR)
-       unsigned long addr = (unsigned long)x;
+       unsigned long addr = (unsigned long)kasan_reset_tag(x);
        if (addr >= MODULES_VADDR && addr < MODULES_END)
                return 1;
 #endif
        struct vmap_area *va = NULL;
        struct rb_node *n = vmap_area_root.rb_node;
 
+       addr = (unsigned long)kasan_reset_tag((void *)addr);
+
        while (n) {
                struct vmap_area *tmp;
 
 {
        struct rb_node *n = vmap_area_root.rb_node;
 
+       addr = (unsigned long)kasan_reset_tag((void *)addr);
+
        while (n) {
                struct vmap_area *va;
 
 void vm_unmap_ram(const void *mem, unsigned int count)
 {
        unsigned long size = (unsigned long)count << PAGE_SHIFT;
-       unsigned long addr = (unsigned long)mem;
+       unsigned long addr = (unsigned long)kasan_reset_tag(mem);
        struct vmap_area *va;
 
        might_sleep();
        unsigned long buflen = count;
        unsigned long n;
 
+       addr = kasan_reset_tag(addr);
+
        /* Don't allow overflow */
        if ((unsigned long) addr + count < count)
                count = -(unsigned long) addr;