{
        return -ENOTSUPP;
 }
+
+static inline void bpf_map_put(struct bpf_map *map)
+{
+}
 #endif /* CONFIG_BPF_SYSCALL */
 
 static inline struct bpf_prog *bpf_prog_get_type(u32 ufd,
 
                                                                     : 0;
 }
 
+static void bpf_free_cgroup_storage(struct bpf_prog_aux *aux)
+{
+       enum bpf_cgroup_storage_type stype;
+
+       for_each_cgroup_storage_type(stype) {
+               if (!aux->cgroup_storage[stype])
+                       continue;
+               bpf_cgroup_storage_release(aux->prog,
+                                          aux->cgroup_storage[stype]);
+       }
+}
+
+static void bpf_free_used_maps(struct bpf_prog_aux *aux)
+{
+       int i;
+
+       bpf_free_cgroup_storage(aux);
+       for (i = 0; i < aux->used_map_cnt; i++)
+               bpf_map_put(aux->used_maps[i]);
+       kfree(aux->used_maps);
+}
+
 static void bpf_prog_free_deferred(struct work_struct *work)
 {
        struct bpf_prog_aux *aux;
        int i;
 
        aux = container_of(work, struct bpf_prog_aux, work);
+       bpf_free_used_maps(aux);
        if (bpf_prog_is_dev_bound(aux))
                bpf_prog_offload_destroy(aux->prog);
 #ifdef CONFIG_PERF_EVENTS
 
        return 0;
 }
 
-/* drop refcnt on maps used by eBPF program and free auxilary data */
-static void free_used_maps(struct bpf_prog_aux *aux)
-{
-       enum bpf_cgroup_storage_type stype;
-       int i;
-
-       for_each_cgroup_storage_type(stype) {
-               if (!aux->cgroup_storage[stype])
-                       continue;
-               bpf_cgroup_storage_release(aux->prog,
-                                          aux->cgroup_storage[stype]);
-       }
-
-       for (i = 0; i < aux->used_map_cnt; i++)
-               bpf_map_put(aux->used_maps[i]);
-
-       kfree(aux->used_maps);
-}
-
 int __bpf_prog_charge(struct user_struct *user, u32 pages)
 {
        unsigned long memlock_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT;
 
        kvfree(aux->func_info);
        kfree(aux->func_info_aux);
-       free_used_maps(aux);
        bpf_prog_uncharge_memlock(aux->prog);
        security_bpf_prog_free(aux);
        bpf_prog_free(aux->prog);