#define TMPL_END_IDX           \
        (optprobe_template_end - optprobe_template_entry)
 
-DEFINE_INSN_CACHE_OPS(ppc_optinsn);
-
 static bool insn_page_in_use;
 
-static void *__ppc_alloc_insn_page(void)
+void *alloc_optinsn_page(void)
 {
        if (insn_page_in_use)
                return NULL;
        return &optinsn_slot;
 }
 
-static void __ppc_free_insn_page(void *page __maybe_unused)
+void free_optinsn_page(void *page)
 {
        insn_page_in_use = false;
 }
 
-struct kprobe_insn_cache kprobe_ppc_optinsn_slots = {
-       .mutex = __MUTEX_INITIALIZER(kprobe_ppc_optinsn_slots.mutex),
-       .pages = LIST_HEAD_INIT(kprobe_ppc_optinsn_slots.pages),
-       /* insn_size initialized later */
-       .alloc = __ppc_alloc_insn_page,
-       .free = __ppc_free_insn_page,
-       .nr_garbage = 0,
-};
-
 /*
  * Check if we can optimize this probe. Returns NIP post-emulation if this can
  * be optimized and 0 otherwise.
 void arch_remove_optimized_kprobe(struct optimized_kprobe *op)
 {
        if (op->optinsn.insn) {
-               free_ppc_optinsn_slot(op->optinsn.insn, 1);
+               free_optinsn_slot(op->optinsn.insn, 1);
                op->optinsn.insn = NULL;
        }
 }
        unsigned long nip, size;
        int rc, i;
 
-       kprobe_ppc_optinsn_slots.insn_size = MAX_OPTINSN_SIZE;
-
        nip = can_optimize(p);
        if (!nip)
                return -EILSEQ;
 
        /* Allocate instruction slot for detour buffer */
-       buff = get_ppc_optinsn_slot();
+       buff = get_optinsn_slot();
        if (!buff)
                return -ENOMEM;
 
        return 0;
 
 error:
-       free_ppc_optinsn_slot(buff, 0);
+       free_optinsn_slot(buff, 0);
        return -ERANGE;
 
 }