diff --git a/mm/slab_common.c b/mm/slab_common.c
index a4a82fbdefd400758c7ec64e32c32d560990d720..bc24100682b03a02cf38fc8c19b834a490313e0f 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -1534,7 +1534,7 @@ void *krealloc(const void *p, size_t new_size, gfp_t flags)
 	}
 
 	ret = __do_krealloc(p, new_size, flags);
-	if (ret && p != ret)
+	if (ret && kasan_reset_tag(p) != kasan_reset_tag(ret))
 		kfree(p);
 
 	return ret;