void free_insn_slot(kprobe_opcode_t *slot) 
void __kprobes free_insn_slot(kprobe_opcode_t *slot) 
void free_insn_slot(kprobe_opcode_t *slot){	struct kprobe_insn_page *kip;	struct hlist_node *pos;	hlist_for_each(pos, &kprobe_insn_pages) {		kip = hlist_entry(pos, struct kprobe_insn_page, hlist);		if (kip->insns <= slot &&		    slot < kip->insns + (INSNS_PER_PAGE * MAX_INSN_SIZE)) {			int i = (slot - kip->insns) / MAX_INSN_SIZE;			kip->slot_used[i] = 0;			kip->nused--;			if (kip->nused == 0) {				/*				 * Page is no longer in use.  Free it unless				 * it's the last one.  We keep the last one				 * so as not to have to set it up again the				 * next time somebody inserts a probe.				 */				hlist_del(&kip->hlist);				if (hlist_empty(&kprobe_insn_pages)) {					INIT_HLIST_NODE(&kip->hlist);					hlist_add_head(&kip->hlist,						&kprobe_insn_pages);				} else {					module_free(NULL, kip->insns);					kfree(kip);				}			}			return;		}	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d0aaff9796c3310326d10da44fc0faed352a1d29/kprobes.c/clean/kernel/kprobes.c