static u8 assign_tag(struct kmem_cache *cache, const void *object,
                        bool init, bool keep_tag)
 {
+       if (IS_ENABLED(CONFIG_KASAN_GENERIC))
+               return 0xff;
+
        /*
         * 1. When an object is kmalloc()'ed, two hooks are called:
         *    kasan_slab_alloc() and kasan_kmalloc(). We assign the
                __memset(alloc_meta, 0, sizeof(*alloc_meta));
        }
 
-       if (IS_ENABLED(CONFIG_KASAN_SW_TAGS) || IS_ENABLED(CONFIG_KASAN_HW_TAGS))
-               object = set_tag(object, assign_tag(cache, object, true, false));
+       /* Tag is ignored in set_tag() without CONFIG_KASAN_SW/HW_TAGS */
+       object = set_tag(object, assign_tag(cache, object, true, false));
 
        return (void *)object;
 }
 {
        unsigned long redzone_start;
        unsigned long redzone_end;
-       u8 tag = 0xff;
+       u8 tag;
 
        if (gfpflags_allow_blocking(flags))
                quarantine_reduce();
                                KASAN_GRANULE_SIZE);
        redzone_end = round_up((unsigned long)object + cache->object_size,
                                KASAN_GRANULE_SIZE);
-
-       if (IS_ENABLED(CONFIG_KASAN_SW_TAGS) || IS_ENABLED(CONFIG_KASAN_HW_TAGS))
-               tag = assign_tag(cache, object, false, keep_tag);
+       tag = assign_tag(cache, object, false, keep_tag);
 
        /* Tag is ignored in set_tag without CONFIG_KASAN_SW/HW_TAGS */
        unpoison_range(set_tag(object, tag), size);