free_pages((unsigned long)p_ptr, 1);
 }
 
-static void vmalloc_percpu(struct kunit *test)
-{
-       char __percpu *ptr;
-       int cpu;
-
-       /*
-        * This test is specifically crafted for the software tag-based mode,
-        * the only tag-based mode that poisons percpu mappings.
-        */
-       KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_SW_TAGS);
-
-       ptr = __alloc_percpu(PAGE_SIZE, PAGE_SIZE);
-
-       for_each_possible_cpu(cpu) {
-               char *c_ptr = per_cpu_ptr(ptr, cpu);
-
-               KUNIT_EXPECT_GE(test, (u8)get_tag(c_ptr), (u8)KASAN_TAG_MIN);
-               KUNIT_EXPECT_LT(test, (u8)get_tag(c_ptr), (u8)KASAN_TAG_KERNEL);
-
-               /* Make sure that in-bounds accesses don't crash the kernel. */
-               *c_ptr = 0;
-       }
-
-       free_percpu(ptr);
-}
-
 /*
  * Check that the assigned pointer tag falls within the [KASAN_TAG_MIN,
  * KASAN_TAG_KERNEL) range (note: excluding the match-all tag) for tag-based
        KUNIT_CASE(vmalloc_oob),
        KUNIT_CASE(vmap_tags),
        KUNIT_CASE(vm_map_ram_tags),
-       KUNIT_CASE(vmalloc_percpu),
        KUNIT_CASE(match_all_not_assigned),
        KUNIT_CASE(match_all_ptr_tag),
        KUNIT_CASE(match_all_mem_tag),