extern void __percpu *pcpu_alloc_noprof(size_t size, size_t align, bool reserved,
                                   gfp_t gfp) __alloc_size(1);
-extern size_t pcpu_alloc_size(void __percpu *__pdata);
 
 #define __alloc_percpu_gfp(_size, _align, _gfp)                                \
        alloc_hooks(pcpu_alloc_noprof(_size, _align, false, _gfp))
 
        mutex_unlock(&pcpu_alloc_mutex);
 }
 
-/**
- * pcpu_alloc_size - the size of the dynamic percpu area
- * @ptr: pointer to the dynamic percpu area
- *
- * Returns the size of the @ptr allocation.  This is undefined for statically
- * defined percpu variables as there is no corresponding chunk->bound_map.
- *
- * RETURNS:
- * The size of the dynamic percpu area.
- *
- * CONTEXT:
- * Can be called from atomic context.
- */
-size_t pcpu_alloc_size(void __percpu *ptr)
-{
-       struct pcpu_chunk *chunk;
-       unsigned long bit_off, end;
-       void *addr;
-
-       if (!ptr)
-               return 0;
-
-       addr = __pcpu_ptr_to_addr(ptr);
-       /* No pcpu_lock here: ptr has not been freed, so chunk is still alive */
-       chunk = pcpu_chunk_addr_search(addr);
-       bit_off = (addr - chunk->base_addr) / PCPU_MIN_ALLOC_SIZE;
-       end = find_next_bit(chunk->bound_map, pcpu_chunk_map_bits(chunk),
-                           bit_off + 1);
-       return (end - bit_off) * PCPU_MIN_ALLOC_SIZE;
-}
-
 /**
  * free_percpu - free percpu area
  * @ptr: pointer to area to free