Lines Matching refs:cmgr
213 struct bnx2fc_cmd_mgr *cmgr;
237 cmgr = kzalloc(len, GFP_KERNEL);
238 if (!cmgr) {
239 printk(KERN_ERR PFX "failed to alloc cmgr\n");
243 cmgr->hba = hba;
244 cmgr->free_list = kcalloc(arr_sz, sizeof(*cmgr->free_list),
246 if (!cmgr->free_list) {
251 cmgr->free_list_lock = kcalloc(arr_sz, sizeof(*cmgr->free_list_lock),
253 if (!cmgr->free_list_lock) {
255 kfree(cmgr->free_list);
256 cmgr->free_list = NULL;
260 cmgr->cmds = (struct bnx2fc_cmd **)(cmgr + 1);
263 INIT_LIST_HEAD(&cmgr->free_list[i]);
264 spin_lock_init(&cmgr->free_list_lock[i]);
288 &cmgr->free_list[io_req->xid %
292 &cmgr->free_list[num_possible_cpus()]);
298 cmgr->io_bdt_pool = kzalloc(mem_size, GFP_KERNEL);
299 if (!cmgr->io_bdt_pool) {
306 cmgr->io_bdt_pool[i] = kmalloc(mem_size, GFP_KERNEL);
307 if (!cmgr->io_bdt_pool[i]) {
317 bdt_info = cmgr->io_bdt_pool[i];
329 return cmgr;
332 bnx2fc_cmd_mgr_free(cmgr);
336 void bnx2fc_cmd_mgr_free(struct bnx2fc_cmd_mgr *cmgr)
339 struct bnx2fc_hba *hba = cmgr->hba;
349 if (!cmgr->io_bdt_pool)
354 bdt_info = cmgr->io_bdt_pool[i];
365 kfree(cmgr->io_bdt_pool[i]);
366 cmgr->io_bdt_pool[i] = NULL;
369 kfree(cmgr->io_bdt_pool);
370 cmgr->io_bdt_pool = NULL;
373 kfree(cmgr->free_list_lock);
376 if (!cmgr->free_list)
383 &cmgr->free_list[i], link) {
388 kfree(cmgr->free_list);
391 kfree(cmgr);
421 * cmgr lock
480 * cmgr lock