if (fmr->remap_count) { INIT_LIST_HEAD(&fmr_list); list_add_tail(&fmr->fmr->list, &fmr_list); ib_unmap_fmr(&fmr_list); } 
void ib_destroy_fmr_pool(struct ib_fmr_pool *pool){	struct ib_pool_fmr *fmr;	struct ib_pool_fmr *tmp;	int                 i;	kthread_stop(pool->thread);	ib_fmr_batch_release(pool);	i = 0;	list_for_each_entry_safe(fmr, tmp, &pool->free_list, list) {		ib_dealloc_fmr(fmr->fmr);		list_del(&fmr->list);		kfree(fmr);		++i;	}	if (i < pool->pool_size)		printk(KERN_WARNING "pool still has %d regions registered",		       pool->pool_size - i);	kfree(pool->cache_bucket);	kfree(pool);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ffbf4c34f1916fa1e0554269c94c57da4a21a348/fmr_pool.c/buggy/drivers/infiniband/core/fmr_pool.c