/linux-4.1.27/drivers/scsi/bnx2fc/ |
H A D | bnx2fc_tgt.c | 18 static int bnx2fc_init_tgt(struct bnx2fc_rport *tgt, 22 struct bnx2fc_rport *tgt); 24 struct bnx2fc_rport *tgt); 26 struct bnx2fc_rport *tgt); 32 struct bnx2fc_rport *tgt = (struct bnx2fc_rport *)data; bnx2fc_upld_timer() local 34 BNX2FC_TGT_DBG(tgt, "upld_timer - Upload compl not received!!\n"); bnx2fc_upld_timer() 36 clear_bit(BNX2FC_FLAG_OFFLOADED, &tgt->flags); bnx2fc_upld_timer() 37 clear_bit(BNX2FC_FLAG_ENABLED, &tgt->flags); bnx2fc_upld_timer() 38 set_bit(BNX2FC_FLAG_UPLD_REQ_COMPL, &tgt->flags); bnx2fc_upld_timer() 39 wake_up_interruptible(&tgt->upld_wait); bnx2fc_upld_timer() 45 struct bnx2fc_rport *tgt = (struct bnx2fc_rport *)data; bnx2fc_ofld_timer() local 47 BNX2FC_TGT_DBG(tgt, "entered bnx2fc_ofld_timer\n"); bnx2fc_ofld_timer() 59 clear_bit(BNX2FC_FLAG_OFFLOADED, &tgt->flags); bnx2fc_ofld_timer() 60 clear_bit(BNX2FC_FLAG_ENABLED, &tgt->flags); bnx2fc_ofld_timer() 61 set_bit(BNX2FC_FLAG_OFLD_REQ_CMPL, &tgt->flags); bnx2fc_ofld_timer() 62 wake_up_interruptible(&tgt->ofld_wait); bnx2fc_ofld_timer() 65 static void bnx2fc_ofld_wait(struct bnx2fc_rport *tgt) bnx2fc_ofld_wait() argument 67 setup_timer(&tgt->ofld_timer, bnx2fc_ofld_timer, (unsigned long)tgt); bnx2fc_ofld_wait() 68 mod_timer(&tgt->ofld_timer, jiffies + BNX2FC_FW_TIMEOUT); bnx2fc_ofld_wait() 70 wait_event_interruptible(tgt->ofld_wait, bnx2fc_ofld_wait() 73 &tgt->flags))); bnx2fc_ofld_wait() 76 del_timer_sync(&tgt->ofld_timer); bnx2fc_ofld_wait() 80 struct bnx2fc_rport *tgt, bnx2fc_offload_session() 91 /* NOTE: tgt is already bzero'd */ bnx2fc_offload_session() 92 rval = bnx2fc_init_tgt(tgt, port, rdata); bnx2fc_offload_session() 100 rval = bnx2fc_alloc_session_resc(hba, tgt); bnx2fc_offload_session() 112 clear_bit(BNX2FC_FLAG_OFLD_REQ_CMPL, &tgt->flags); bnx2fc_offload_session() 113 rval = bnx2fc_send_session_ofld_req(port, tgt); bnx2fc_offload_session() 123 bnx2fc_ofld_wait(tgt); bnx2fc_offload_session() 125 if (!(test_bit(BNX2FC_FLAG_OFFLOADED, &tgt->flags))) { bnx2fc_offload_session() 127 &tgt->flags)) { bnx2fc_offload_session() 128 BNX2FC_TGT_DBG(tgt, "ctx_alloc_failure, " bnx2fc_offload_session() 139 if (bnx2fc_map_doorbell(tgt)) { bnx2fc_offload_session() 143 clear_bit(BNX2FC_FLAG_OFLD_REQ_CMPL, &tgt->flags); bnx2fc_offload_session() 144 rval = bnx2fc_send_session_enable_req(port, tgt); bnx2fc_offload_session() 149 bnx2fc_ofld_wait(tgt); bnx2fc_offload_session() 150 if (!(test_bit(BNX2FC_FLAG_ENABLED, &tgt->flags))) bnx2fc_offload_session() 156 BNX2FC_TGT_DBG(tgt, "bnx2fc_offload_session - offload error\n"); bnx2fc_offload_session() 157 clear_bit(BNX2FC_FLAG_OFFLOADED, &tgt->flags); bnx2fc_offload_session() 159 bnx2fc_free_session_resc(hba, tgt); bnx2fc_offload_session() 161 if (tgt->fcoe_conn_id != -1) bnx2fc_offload_session() 162 bnx2fc_free_conn_id(hba, tgt->fcoe_conn_id); bnx2fc_offload_session() 166 void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt) bnx2fc_flush_active_ios() argument 172 BNX2FC_TGT_DBG(tgt, "Entered flush_active_ios - %d\n", bnx2fc_flush_active_ios() 173 tgt->num_active_ios.counter); bnx2fc_flush_active_ios() 175 spin_lock_bh(&tgt->tgt_lock); bnx2fc_flush_active_ios() 176 tgt->flush_in_prog = 1; bnx2fc_flush_active_ios() 178 list_for_each_entry_safe(io_req, tmp, &tgt->active_cmd_queue, link) { bnx2fc_flush_active_ios() 200 if (test_bit(BNX2FC_FLAG_DISABLE_FAILED, &tgt->flags)) bnx2fc_flush_active_ios() 208 list_for_each_entry_safe(io_req, tmp, &tgt->active_tm_queue, link) { bnx2fc_flush_active_ios() 217 list_for_each_entry_safe(io_req, tmp, &tgt->els_queue, link) { bnx2fc_flush_active_ios() 234 if (test_bit(BNX2FC_FLAG_DISABLE_FAILED, &tgt->flags)) bnx2fc_flush_active_ios() 242 list_for_each_entry_safe(io_req, tmp, &tgt->io_retire_queue, link) { bnx2fc_flush_active_ios() 263 BNX2FC_TGT_DBG(tgt, "IOs flushed = %d\n", i); bnx2fc_flush_active_ios() 265 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_flush_active_ios() 267 while ((tgt->num_active_ios.counter != 0) && (i++ < BNX2FC_WAIT_CNT)) bnx2fc_flush_active_ios() 269 if (tgt->num_active_ios.counter != 0) bnx2fc_flush_active_ios() 272 tgt->rdata->ids.port_id, tgt->num_active_ios.counter); bnx2fc_flush_active_ios() 273 spin_lock_bh(&tgt->tgt_lock); bnx2fc_flush_active_ios() 274 tgt->flush_in_prog = 0; bnx2fc_flush_active_ios() 275 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_flush_active_ios() 278 static void bnx2fc_upld_wait(struct bnx2fc_rport *tgt) bnx2fc_upld_wait() argument 280 setup_timer(&tgt->upld_timer, bnx2fc_upld_timer, (unsigned long)tgt); bnx2fc_upld_wait() 281 mod_timer(&tgt->upld_timer, jiffies + BNX2FC_FW_TIMEOUT); bnx2fc_upld_wait() 282 wait_event_interruptible(tgt->upld_wait, bnx2fc_upld_wait() 285 &tgt->flags))); bnx2fc_upld_wait() 288 del_timer_sync(&tgt->upld_timer); bnx2fc_upld_wait() 292 struct bnx2fc_rport *tgt) bnx2fc_upload_session() 297 BNX2FC_TGT_DBG(tgt, "upload_session: active_ios = %d\n", bnx2fc_upload_session() 298 tgt->num_active_ios.counter); bnx2fc_upload_session() 304 clear_bit(BNX2FC_FLAG_UPLD_REQ_COMPL, &tgt->flags); bnx2fc_upload_session() 305 bnx2fc_send_session_disable_req(port, tgt); bnx2fc_upload_session() 311 BNX2FC_TGT_DBG(tgt, "waiting for disable compl\n"); bnx2fc_upload_session() 312 bnx2fc_upld_wait(tgt); bnx2fc_upload_session() 318 BNX2FC_TGT_DBG(tgt, "flush/upload - disable wait flags = 0x%lx\n", bnx2fc_upload_session() 319 tgt->flags); bnx2fc_upload_session() 320 bnx2fc_flush_active_ios(tgt); bnx2fc_upload_session() 323 if (test_bit(BNX2FC_FLAG_DISABLED, &tgt->flags)) { bnx2fc_upload_session() 324 BNX2FC_TGT_DBG(tgt, "send destroy req\n"); bnx2fc_upload_session() 325 clear_bit(BNX2FC_FLAG_UPLD_REQ_COMPL, &tgt->flags); bnx2fc_upload_session() 326 bnx2fc_send_session_destroy_req(hba, tgt); bnx2fc_upload_session() 329 bnx2fc_upld_wait(tgt); bnx2fc_upload_session() 331 if (!(test_bit(BNX2FC_FLAG_DESTROYED, &tgt->flags))) bnx2fc_upload_session() 334 BNX2FC_TGT_DBG(tgt, "destroy wait complete flags = 0x%lx\n", bnx2fc_upload_session() 335 tgt->flags); bnx2fc_upload_session() 337 } else if (test_bit(BNX2FC_FLAG_DISABLE_FAILED, &tgt->flags)) { bnx2fc_upload_session() 346 bnx2fc_free_session_resc(hba, tgt); bnx2fc_upload_session() 347 bnx2fc_free_conn_id(hba, tgt->fcoe_conn_id); bnx2fc_upload_session() 350 static int bnx2fc_init_tgt(struct bnx2fc_rport *tgt, bnx2fc_init_tgt() argument 358 struct b577xx_doorbell_set_prod *sq_db = &tgt->sq_db; bnx2fc_init_tgt() 359 struct b577xx_fcoe_rx_doorbell *rx_db = &tgt->rx_db; bnx2fc_init_tgt() 361 tgt->rport = rport; bnx2fc_init_tgt() 362 tgt->rdata = rdata; bnx2fc_init_tgt() 363 tgt->port = port; bnx2fc_init_tgt() 366 BNX2FC_TGT_DBG(tgt, "exceeded max sessions. logoff this tgt\n"); bnx2fc_init_tgt() 367 tgt->fcoe_conn_id = -1; bnx2fc_init_tgt() 371 tgt->fcoe_conn_id = bnx2fc_alloc_conn_id(hba, tgt); bnx2fc_init_tgt() 372 if (tgt->fcoe_conn_id == -1) bnx2fc_init_tgt() 375 BNX2FC_TGT_DBG(tgt, "init_tgt - conn_id = 0x%x\n", tgt->fcoe_conn_id); bnx2fc_init_tgt() 377 tgt->max_sqes = BNX2FC_SQ_WQES_MAX; bnx2fc_init_tgt() 378 tgt->max_rqes = BNX2FC_RQ_WQES_MAX; bnx2fc_init_tgt() 379 tgt->max_cqes = BNX2FC_CQ_WQES_MAX; bnx2fc_init_tgt() 380 atomic_set(&tgt->free_sqes, BNX2FC_SQ_WQES_MAX); bnx2fc_init_tgt() 383 tgt->sq_curr_toggle_bit = 1; bnx2fc_init_tgt() 384 tgt->cq_curr_toggle_bit = 1; bnx2fc_init_tgt() 385 tgt->sq_prod_idx = 0; bnx2fc_init_tgt() 386 tgt->cq_cons_idx = 0; bnx2fc_init_tgt() 387 tgt->rq_prod_idx = 0x8000; bnx2fc_init_tgt() 388 tgt->rq_cons_idx = 0; bnx2fc_init_tgt() 389 atomic_set(&tgt->num_active_ios, 0); bnx2fc_init_tgt() 390 tgt->retry_delay_timestamp = 0; bnx2fc_init_tgt() 395 tgt->dev_type = TYPE_TAPE; bnx2fc_init_tgt() 396 tgt->io_timeout = 0; /* use default ULP timeout */ bnx2fc_init_tgt() 398 tgt->dev_type = TYPE_DISK; bnx2fc_init_tgt() 399 tgt->io_timeout = BNX2FC_IO_TIMEOUT; bnx2fc_init_tgt() 414 spin_lock_init(&tgt->tgt_lock); bnx2fc_init_tgt() 415 spin_lock_init(&tgt->cq_lock); bnx2fc_init_tgt() 418 INIT_LIST_HEAD(&tgt->active_cmd_queue); bnx2fc_init_tgt() 421 INIT_LIST_HEAD(&tgt->io_retire_queue); bnx2fc_init_tgt() 423 INIT_LIST_HEAD(&tgt->els_queue); bnx2fc_init_tgt() 426 INIT_LIST_HEAD(&tgt->active_tm_queue); bnx2fc_init_tgt() 428 init_waitqueue_head(&tgt->ofld_wait); bnx2fc_init_tgt() 429 init_waitqueue_head(&tgt->upld_wait); bnx2fc_init_tgt() 448 struct bnx2fc_rport *tgt; bnx2fc_rport_event_handler() local 489 tgt = (struct bnx2fc_rport *)&rp[1]; bnx2fc_rport_event_handler() 492 if (test_bit(BNX2FC_FLAG_ENABLED, &tgt->flags)) { bnx2fc_rport_event_handler() 493 BNX2FC_TGT_DBG(tgt, "already offloaded\n"); bnx2fc_rport_event_handler() 502 bnx2fc_offload_session(port, tgt, rdata); bnx2fc_rport_event_handler() 504 BNX2FC_TGT_DBG(tgt, "OFFLOAD num_ofld_sess = %d\n", bnx2fc_rport_event_handler() 507 if (test_bit(BNX2FC_FLAG_ENABLED, &tgt->flags)) { bnx2fc_rport_event_handler() 509 BNX2FC_TGT_DBG(tgt, "sess offloaded\n"); bnx2fc_rport_event_handler() 513 set_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags); bnx2fc_rport_event_handler() 520 BNX2FC_TGT_DBG(tgt, "Port is being logged off as " bnx2fc_rport_event_handler() 543 tgt = (struct bnx2fc_rport *)&rp[1]; bnx2fc_rport_event_handler() 545 if (!(test_bit(BNX2FC_FLAG_ENABLED, &tgt->flags))) { bnx2fc_rport_event_handler() 549 clear_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags); bnx2fc_rport_event_handler() 551 bnx2fc_upload_session(port, tgt); bnx2fc_rport_event_handler() 553 BNX2FC_TGT_DBG(tgt, "UPLOAD num_ofld_sess = %d\n", bnx2fc_rport_event_handler() 563 if (test_bit(BNX2FC_FLAG_EXPL_LOGO, &tgt->flags)) { bnx2fc_rport_event_handler() 564 printk(KERN_ERR PFX "Relogin to the tgt\n"); bnx2fc_rport_event_handler() 589 struct bnx2fc_rport *tgt; bnx2fc_tgt_lookup() local 594 tgt = hba->tgt_ofld_list[i]; bnx2fc_tgt_lookup() 595 if ((tgt) && (tgt->port == port)) { bnx2fc_tgt_lookup() 596 rdata = tgt->rdata; bnx2fc_tgt_lookup() 599 BNX2FC_TGT_DBG(tgt, "rport " bnx2fc_tgt_lookup() 601 return tgt; bnx2fc_tgt_lookup() 603 BNX2FC_TGT_DBG(tgt, "rport 0x%x " bnx2fc_tgt_lookup() 619 * @tgt: pointer to bnx2fc_rport structure 622 struct bnx2fc_rport *tgt) bnx2fc_alloc_conn_id() 651 hba->tgt_ofld_list[conn_id] = tgt; bnx2fc_alloc_conn_id() 652 tgt->fcoe_conn_id = conn_id; bnx2fc_alloc_conn_id() 670 struct bnx2fc_rport *tgt) bnx2fc_alloc_session_resc() 677 tgt->sq_mem_size = tgt->max_sqes * BNX2FC_SQ_WQE_SIZE; bnx2fc_alloc_session_resc() 678 tgt->sq_mem_size = (tgt->sq_mem_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 681 tgt->sq = dma_alloc_coherent(&hba->pcidev->dev, tgt->sq_mem_size, bnx2fc_alloc_session_resc() 682 &tgt->sq_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 683 if (!tgt->sq) { bnx2fc_alloc_session_resc() 685 tgt->sq_mem_size); bnx2fc_alloc_session_resc() 688 memset(tgt->sq, 0, tgt->sq_mem_size); bnx2fc_alloc_session_resc() 691 tgt->cq_mem_size = tgt->max_cqes * BNX2FC_CQ_WQE_SIZE; bnx2fc_alloc_session_resc() 692 tgt->cq_mem_size = (tgt->cq_mem_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 695 tgt->cq = dma_alloc_coherent(&hba->pcidev->dev, tgt->cq_mem_size, bnx2fc_alloc_session_resc() 696 &tgt->cq_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 697 if (!tgt->cq) { bnx2fc_alloc_session_resc() 699 tgt->cq_mem_size); bnx2fc_alloc_session_resc() 702 memset(tgt->cq, 0, tgt->cq_mem_size); bnx2fc_alloc_session_resc() 705 tgt->rq_mem_size = tgt->max_rqes * BNX2FC_RQ_WQE_SIZE; bnx2fc_alloc_session_resc() 706 tgt->rq_mem_size = (tgt->rq_mem_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 709 tgt->rq = dma_alloc_coherent(&hba->pcidev->dev, tgt->rq_mem_size, bnx2fc_alloc_session_resc() 710 &tgt->rq_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 711 if (!tgt->rq) { bnx2fc_alloc_session_resc() 713 tgt->rq_mem_size); bnx2fc_alloc_session_resc() 716 memset(tgt->rq, 0, tgt->rq_mem_size); bnx2fc_alloc_session_resc() 718 tgt->rq_pbl_size = (tgt->rq_mem_size / CNIC_PAGE_SIZE) * sizeof(void *); bnx2fc_alloc_session_resc() 719 tgt->rq_pbl_size = (tgt->rq_pbl_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 722 tgt->rq_pbl = dma_alloc_coherent(&hba->pcidev->dev, tgt->rq_pbl_size, bnx2fc_alloc_session_resc() 723 &tgt->rq_pbl_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 724 if (!tgt->rq_pbl) { bnx2fc_alloc_session_resc() 726 tgt->rq_pbl_size); bnx2fc_alloc_session_resc() 730 memset(tgt->rq_pbl, 0, tgt->rq_pbl_size); bnx2fc_alloc_session_resc() 731 num_pages = tgt->rq_mem_size / CNIC_PAGE_SIZE; bnx2fc_alloc_session_resc() 732 page = tgt->rq_dma; bnx2fc_alloc_session_resc() 733 pbl = (u32 *)tgt->rq_pbl; bnx2fc_alloc_session_resc() 744 tgt->xferq_mem_size = tgt->max_sqes * BNX2FC_XFERQ_WQE_SIZE; bnx2fc_alloc_session_resc() 745 tgt->xferq_mem_size = (tgt->xferq_mem_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 748 tgt->xferq = dma_alloc_coherent(&hba->pcidev->dev, tgt->xferq_mem_size, bnx2fc_alloc_session_resc() 749 &tgt->xferq_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 750 if (!tgt->xferq) { bnx2fc_alloc_session_resc() 752 tgt->xferq_mem_size); bnx2fc_alloc_session_resc() 755 memset(tgt->xferq, 0, tgt->xferq_mem_size); bnx2fc_alloc_session_resc() 758 tgt->confq_mem_size = tgt->max_sqes * BNX2FC_CONFQ_WQE_SIZE; bnx2fc_alloc_session_resc() 759 tgt->confq_mem_size = (tgt->confq_mem_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 762 tgt->confq = dma_alloc_coherent(&hba->pcidev->dev, tgt->confq_mem_size, bnx2fc_alloc_session_resc() 763 &tgt->confq_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 764 if (!tgt->confq) { bnx2fc_alloc_session_resc() 766 tgt->confq_mem_size); bnx2fc_alloc_session_resc() 769 memset(tgt->confq, 0, tgt->confq_mem_size); bnx2fc_alloc_session_resc() 771 tgt->confq_pbl_size = bnx2fc_alloc_session_resc() 772 (tgt->confq_mem_size / CNIC_PAGE_SIZE) * sizeof(void *); bnx2fc_alloc_session_resc() 773 tgt->confq_pbl_size = bnx2fc_alloc_session_resc() 774 (tgt->confq_pbl_size + (CNIC_PAGE_SIZE - 1)) & CNIC_PAGE_MASK; bnx2fc_alloc_session_resc() 776 tgt->confq_pbl = dma_alloc_coherent(&hba->pcidev->dev, bnx2fc_alloc_session_resc() 777 tgt->confq_pbl_size, bnx2fc_alloc_session_resc() 778 &tgt->confq_pbl_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 779 if (!tgt->confq_pbl) { bnx2fc_alloc_session_resc() 781 tgt->confq_pbl_size); bnx2fc_alloc_session_resc() 785 memset(tgt->confq_pbl, 0, tgt->confq_pbl_size); bnx2fc_alloc_session_resc() 786 num_pages = tgt->confq_mem_size / CNIC_PAGE_SIZE; bnx2fc_alloc_session_resc() 787 page = tgt->confq_dma; bnx2fc_alloc_session_resc() 788 pbl = (u32 *)tgt->confq_pbl; bnx2fc_alloc_session_resc() 799 tgt->conn_db_mem_size = sizeof(struct fcoe_conn_db); bnx2fc_alloc_session_resc() 801 tgt->conn_db = dma_alloc_coherent(&hba->pcidev->dev, bnx2fc_alloc_session_resc() 802 tgt->conn_db_mem_size, bnx2fc_alloc_session_resc() 803 &tgt->conn_db_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 804 if (!tgt->conn_db) { bnx2fc_alloc_session_resc() 806 tgt->conn_db_mem_size); bnx2fc_alloc_session_resc() 809 memset(tgt->conn_db, 0, tgt->conn_db_mem_size); bnx2fc_alloc_session_resc() 813 tgt->lcq_mem_size = (tgt->max_sqes + 8) * BNX2FC_SQ_WQE_SIZE; bnx2fc_alloc_session_resc() 814 tgt->lcq_mem_size = (tgt->lcq_mem_size + (CNIC_PAGE_SIZE - 1)) & bnx2fc_alloc_session_resc() 817 tgt->lcq = dma_alloc_coherent(&hba->pcidev->dev, tgt->lcq_mem_size, bnx2fc_alloc_session_resc() 818 &tgt->lcq_dma, GFP_KERNEL); bnx2fc_alloc_session_resc() 820 if (!tgt->lcq) { bnx2fc_alloc_session_resc() 822 tgt->lcq_mem_size); bnx2fc_alloc_session_resc() 825 memset(tgt->lcq, 0, tgt->lcq_mem_size); bnx2fc_alloc_session_resc() 827 tgt->conn_db->rq_prod = 0x8000; bnx2fc_alloc_session_resc() 839 * @tgt: bnx2fc_rport structure pointer 844 struct bnx2fc_rport *tgt) bnx2fc_free_session_resc() 848 BNX2FC_TGT_DBG(tgt, "Freeing up session resources\n"); bnx2fc_free_session_resc() 850 spin_lock_bh(&tgt->cq_lock); bnx2fc_free_session_resc() 851 ctx_base_ptr = tgt->ctx_base; bnx2fc_free_session_resc() 852 tgt->ctx_base = NULL; bnx2fc_free_session_resc() 855 if (tgt->lcq) { bnx2fc_free_session_resc() 856 dma_free_coherent(&hba->pcidev->dev, tgt->lcq_mem_size, bnx2fc_free_session_resc() 857 tgt->lcq, tgt->lcq_dma); bnx2fc_free_session_resc() 858 tgt->lcq = NULL; bnx2fc_free_session_resc() 861 if (tgt->conn_db) { bnx2fc_free_session_resc() 862 dma_free_coherent(&hba->pcidev->dev, tgt->conn_db_mem_size, bnx2fc_free_session_resc() 863 tgt->conn_db, tgt->conn_db_dma); bnx2fc_free_session_resc() 864 tgt->conn_db = NULL; bnx2fc_free_session_resc() 867 if (tgt->confq_pbl) { bnx2fc_free_session_resc() 868 dma_free_coherent(&hba->pcidev->dev, tgt->confq_pbl_size, bnx2fc_free_session_resc() 869 tgt->confq_pbl, tgt->confq_pbl_dma); bnx2fc_free_session_resc() 870 tgt->confq_pbl = NULL; bnx2fc_free_session_resc() 872 if (tgt->confq) { bnx2fc_free_session_resc() 873 dma_free_coherent(&hba->pcidev->dev, tgt->confq_mem_size, bnx2fc_free_session_resc() 874 tgt->confq, tgt->confq_dma); bnx2fc_free_session_resc() 875 tgt->confq = NULL; bnx2fc_free_session_resc() 878 if (tgt->xferq) { bnx2fc_free_session_resc() 879 dma_free_coherent(&hba->pcidev->dev, tgt->xferq_mem_size, bnx2fc_free_session_resc() 880 tgt->xferq, tgt->xferq_dma); bnx2fc_free_session_resc() 881 tgt->xferq = NULL; bnx2fc_free_session_resc() 884 if (tgt->rq_pbl) { bnx2fc_free_session_resc() 885 dma_free_coherent(&hba->pcidev->dev, tgt->rq_pbl_size, bnx2fc_free_session_resc() 886 tgt->rq_pbl, tgt->rq_pbl_dma); bnx2fc_free_session_resc() 887 tgt->rq_pbl = NULL; bnx2fc_free_session_resc() 889 if (tgt->rq) { bnx2fc_free_session_resc() 890 dma_free_coherent(&hba->pcidev->dev, tgt->rq_mem_size, bnx2fc_free_session_resc() 891 tgt->rq, tgt->rq_dma); bnx2fc_free_session_resc() 892 tgt->rq = NULL; bnx2fc_free_session_resc() 895 if (tgt->cq) { bnx2fc_free_session_resc() 896 dma_free_coherent(&hba->pcidev->dev, tgt->cq_mem_size, bnx2fc_free_session_resc() 897 tgt->cq, tgt->cq_dma); bnx2fc_free_session_resc() 898 tgt->cq = NULL; bnx2fc_free_session_resc() 901 if (tgt->sq) { bnx2fc_free_session_resc() 902 dma_free_coherent(&hba->pcidev->dev, tgt->sq_mem_size, bnx2fc_free_session_resc() 903 tgt->sq, tgt->sq_dma); bnx2fc_free_session_resc() 904 tgt->sq = NULL; bnx2fc_free_session_resc() 906 spin_unlock_bh(&tgt->cq_lock); bnx2fc_free_session_resc() 79 bnx2fc_offload_session(struct fcoe_port *port, struct bnx2fc_rport *tgt, struct fc_rport_priv *rdata) bnx2fc_offload_session() argument 291 bnx2fc_upload_session(struct fcoe_port *port, struct bnx2fc_rport *tgt) bnx2fc_upload_session() argument 621 bnx2fc_alloc_conn_id(struct bnx2fc_hba *hba, struct bnx2fc_rport *tgt) bnx2fc_alloc_conn_id() argument 669 bnx2fc_alloc_session_resc(struct bnx2fc_hba *hba, struct bnx2fc_rport *tgt) bnx2fc_alloc_session_resc() argument 843 bnx2fc_free_session_resc(struct bnx2fc_hba *hba, struct bnx2fc_rport *tgt) bnx2fc_free_session_resc() argument
|
H A D | bnx2fc_debug.c | 40 void BNX2FC_TGT_DBG(const struct bnx2fc_rport *tgt, const char *fmt, ...) BNX2FC_TGT_DBG() argument 53 if (tgt && tgt->port && tgt->port->lport && tgt->port->lport->host && BNX2FC_TGT_DBG() 54 tgt->rport) BNX2FC_TGT_DBG() 55 shost_printk(KERN_INFO, tgt->port->lport->host, BNX2FC_TGT_DBG() 57 tgt->rport->port_id, &vaf); BNX2FC_TGT_DBG()
|
H A D | bnx2fc_hwi.c | 168 * @tgt: bnx2fc_rport structure pointer 171 struct bnx2fc_rport *tgt) bnx2fc_send_session_ofld_req() 182 struct fc_rport_priv *rdata = tgt->rdata; bnx2fc_send_session_ofld_req() 183 struct fc_rport *rport = tgt->rport; bnx2fc_send_session_ofld_req() 197 conn_id = (u16)tgt->fcoe_conn_id; bnx2fc_send_session_ofld_req() 201 ofld_req1.sq_addr_lo = (u32) tgt->sq_dma; bnx2fc_send_session_ofld_req() 202 ofld_req1.sq_addr_hi = (u32)((u64) tgt->sq_dma >> 32); bnx2fc_send_session_ofld_req() 204 ofld_req1.rq_pbl_addr_lo = (u32) tgt->rq_pbl_dma; bnx2fc_send_session_ofld_req() 205 ofld_req1.rq_pbl_addr_hi = (u32)((u64) tgt->rq_pbl_dma >> 32); bnx2fc_send_session_ofld_req() 207 ofld_req1.rq_first_pbe_addr_lo = (u32) tgt->rq_dma; bnx2fc_send_session_ofld_req() 209 (u32)((u64) tgt->rq_dma >> 32); bnx2fc_send_session_ofld_req() 222 ofld_req2.cq_addr_lo = (u32) tgt->cq_dma; bnx2fc_send_session_ofld_req() 223 ofld_req2.cq_addr_hi = (u32)((u64)tgt->cq_dma >> 32); bnx2fc_send_session_ofld_req() 225 ofld_req2.xferq_addr_lo = (u32) tgt->xferq_dma; bnx2fc_send_session_ofld_req() 226 ofld_req2.xferq_addr_hi = (u32)((u64)tgt->xferq_dma >> 32); bnx2fc_send_session_ofld_req() 228 ofld_req2.conn_db_addr_lo = (u32)tgt->conn_db_dma; bnx2fc_send_session_ofld_req() 229 ofld_req2.conn_db_addr_hi = (u32)((u64)tgt->conn_db_dma >> 32); bnx2fc_send_session_ofld_req() 253 tgt->sid = port_id; bnx2fc_send_session_ofld_req() 272 ofld_req3.confq_first_pbe_addr_lo = tgt->confq_dma; bnx2fc_send_session_ofld_req() 273 ofld_req3.confq_first_pbe_addr_hi = (u32)((u64) tgt->confq_dma >> 32); bnx2fc_send_session_ofld_req() 292 if (tgt->dev_type == TYPE_TAPE) { bnx2fc_send_session_ofld_req() 331 ofld_req4.lcq_addr_lo = (u32) tgt->lcq_dma; bnx2fc_send_session_ofld_req() 332 ofld_req4.lcq_addr_hi = (u32)((u64) tgt->lcq_dma >> 32); bnx2fc_send_session_ofld_req() 334 ofld_req4.confq_pbl_base_addr_lo = (u32) tgt->confq_pbl_dma; bnx2fc_send_session_ofld_req() 336 (u32)((u64) tgt->confq_pbl_dma >> 32); bnx2fc_send_session_ofld_req() 353 * @tgt: bnx2fc_rport structure pointer 356 struct bnx2fc_rport *tgt) bnx2fc_send_session_enable_req() 364 struct fc_rport *rport = tgt->rport; bnx2fc_send_session_enable_req() 382 memcpy(tgt->src_addr, port->data_src_addr, ETH_ALEN); bnx2fc_send_session_enable_req() 392 if (port_id != tgt->sid) { bnx2fc_send_session_enable_req() 394 "sid = 0x%x\n", port_id, tgt->sid); bnx2fc_send_session_enable_req() 395 port_id = tgt->sid; bnx2fc_send_session_enable_req() 409 enbl_req.context_id = tgt->context_id; bnx2fc_send_session_enable_req() 410 enbl_req.conn_id = tgt->fcoe_conn_id; bnx2fc_send_session_enable_req() 423 * @tgt: bnx2fc_rport structure pointer 426 struct bnx2fc_rport *tgt) bnx2fc_send_session_disable_req() 433 struct fc_rport *rport = tgt->rport; bnx2fc_send_session_disable_req() 444 disable_req.src_mac_addr_lo[0] = tgt->src_addr[5]; bnx2fc_send_session_disable_req() 445 disable_req.src_mac_addr_lo[1] = tgt->src_addr[4]; bnx2fc_send_session_disable_req() 446 disable_req.src_mac_addr_mid[0] = tgt->src_addr[3]; bnx2fc_send_session_disable_req() 447 disable_req.src_mac_addr_mid[1] = tgt->src_addr[2]; bnx2fc_send_session_disable_req() 448 disable_req.src_mac_addr_hi[0] = tgt->src_addr[1]; bnx2fc_send_session_disable_req() 449 disable_req.src_mac_addr_hi[1] = tgt->src_addr[0]; bnx2fc_send_session_disable_req() 458 port_id = tgt->sid; bnx2fc_send_session_disable_req() 468 disable_req.context_id = tgt->context_id; bnx2fc_send_session_disable_req() 469 disable_req.conn_id = tgt->fcoe_conn_id; bnx2fc_send_session_disable_req() 488 * @tgt: bnx2fc_rport structure pointer 491 struct bnx2fc_rport *tgt) bnx2fc_send_session_destroy_req() 503 destroy_req.context_id = tgt->context_id; bnx2fc_send_session_destroy_req() 504 destroy_req.conn_id = tgt->fcoe_conn_id; bnx2fc_send_session_destroy_req() 547 void bnx2fc_process_l2_frame_compl(struct bnx2fc_rport *tgt, bnx2fc_process_l2_frame_compl() argument 551 struct fcoe_port *port = tgt->port; bnx2fc_process_l2_frame_compl() 565 BNX2FC_TGT_DBG(tgt, "Unable to allocate unsol_work\n"); bnx2fc_process_l2_frame_compl() 569 BNX2FC_TGT_DBG(tgt, "l2_frame_compl l2_oxid = 0x%x, frame_len = %d\n", bnx2fc_process_l2_frame_compl() 625 static void bnx2fc_process_unsol_compl(struct bnx2fc_rport *tgt, u16 wqe) bnx2fc_process_unsol_compl() argument 636 struct bnx2fc_interface *interface = tgt->port->priv; bnx2fc_process_unsol_compl() 644 BNX2FC_TGT_DBG(tgt, "Entered UNSOL COMPLETION wqe = 0x%x\n", wqe); bnx2fc_process_unsol_compl() 652 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 653 rq_data = (unsigned char *)bnx2fc_get_next_rqe(tgt, num_rq); bnx2fc_process_unsol_compl() 654 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 663 BNX2FC_TGT_DBG(tgt, "Memory alloc failure\n"); bnx2fc_process_unsol_compl() 668 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 670 bnx2fc_get_next_rqe(tgt, 1); bnx2fc_process_unsol_compl() 671 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 677 bnx2fc_process_l2_frame_compl(tgt, buf, frame_len, bnx2fc_process_unsol_compl() 682 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 683 bnx2fc_return_rqe(tgt, num_rq); bnx2fc_process_unsol_compl() 684 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 692 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 695 bnx2fc_get_next_rqe(tgt, 1); bnx2fc_process_unsol_compl() 697 BNX2FC_TGT_DBG(tgt, "Unsol Error Frame OX_ID = 0x%x\n", xid); bnx2fc_process_unsol_compl() 698 BNX2FC_TGT_DBG(tgt, "err_warn_bitmap = %08x:%08x\n", bnx2fc_process_unsol_compl() 701 BNX2FC_TGT_DBG(tgt, "buf_offsets - tx = 0x%x, rx = 0x%x\n", bnx2fc_process_unsol_compl() 706 BNX2FC_TGT_DBG(tgt, "xid(0x%x) out of FW range\n", bnx2fc_process_unsol_compl() 755 BNX2FC_TGT_DBG(tgt, "err = 0x%x\n", err_warn); bnx2fc_process_unsol_compl() 756 if (tgt->dev_type != TYPE_TAPE) bnx2fc_process_unsol_compl() 765 BNX2FC_TGT_DBG(tgt, "REC TOV popped for xid - 0x%x\n", bnx2fc_process_unsol_compl() 771 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 773 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 802 bnx2fc_return_rqe(tgt, 1); bnx2fc_process_unsol_compl() 803 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 811 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 814 bnx2fc_get_next_rqe(tgt, 1); bnx2fc_process_unsol_compl() 816 BNX2FC_TGT_DBG(tgt, "Unsol Warning Frame OX_ID = 0x%x\n", xid); bnx2fc_process_unsol_compl() 817 BNX2FC_TGT_DBG(tgt, "err_warn_bitmap = %08x:%08x", bnx2fc_process_unsol_compl() 820 BNX2FC_TGT_DBG(tgt, "buf_offsets - tx = 0x%x, rx = 0x%x", bnx2fc_process_unsol_compl() 824 BNX2FC_TGT_DBG(tgt, "xid(0x%x) out of FW range\n", xid); bnx2fc_process_unsol_compl() 837 BNX2FC_TGT_DBG(tgt, "warn = 0x%x\n", err_warn); bnx2fc_process_unsol_compl() 860 BNX2FC_TGT_DBG(tgt, "Unsolicited warning\n"); bnx2fc_process_unsol_compl() 862 bnx2fc_return_rqe(tgt, 1); bnx2fc_process_unsol_compl() 863 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_unsol_compl() 872 void bnx2fc_process_cq_compl(struct bnx2fc_rport *tgt, u16 wqe) bnx2fc_process_cq_compl() argument 876 struct fcoe_port *port = tgt->port; bnx2fc_process_cq_compl() 886 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_cq_compl() 890 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_cq_compl() 906 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_cq_compl() 922 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_cq_compl() 980 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_cq_compl() 983 void bnx2fc_arm_cq(struct bnx2fc_rport *tgt) bnx2fc_arm_cq() argument 985 struct b577xx_fcoe_rx_doorbell *rx_db = &tgt->rx_db; bnx2fc_arm_cq() 989 rx_db->doorbell_cq_cons = tgt->cq_cons_idx | (tgt->cq_curr_toggle_bit << bnx2fc_arm_cq() 992 writel(cpu_to_le32(msg), tgt->ctx_base); bnx2fc_arm_cq() 997 struct bnx2fc_work *bnx2fc_alloc_work(struct bnx2fc_rport *tgt, u16 wqe) bnx2fc_alloc_work() argument 1005 work->tgt = tgt; bnx2fc_alloc_work() 1010 int bnx2fc_process_new_cqes(struct bnx2fc_rport *tgt) bnx2fc_process_new_cqes() argument 1024 spin_lock_bh(&tgt->cq_lock); bnx2fc_process_new_cqes() 1026 if (!tgt->cq) { bnx2fc_process_new_cqes() 1028 spin_unlock_bh(&tgt->cq_lock); bnx2fc_process_new_cqes() 1031 cq = tgt->cq; bnx2fc_process_new_cqes() 1032 cq_cons = tgt->cq_cons_idx; bnx2fc_process_new_cqes() 1036 (tgt->cq_curr_toggle_bit << bnx2fc_process_new_cqes() 1042 bnx2fc_process_unsol_compl(tgt, wqe); bnx2fc_process_new_cqes() 1054 work = bnx2fc_alloc_work(tgt, wqe); bnx2fc_process_new_cqes() 1065 bnx2fc_process_cq_compl(tgt, wqe); bnx2fc_process_new_cqes() 1069 tgt->cq_cons_idx++; bnx2fc_process_new_cqes() 1072 if (tgt->cq_cons_idx == BNX2FC_CQ_WQES_MAX) { bnx2fc_process_new_cqes() 1073 tgt->cq_cons_idx = 0; bnx2fc_process_new_cqes() 1075 tgt->cq_curr_toggle_bit = bnx2fc_process_new_cqes() 1076 1 - tgt->cq_curr_toggle_bit; bnx2fc_process_new_cqes() 1081 if (tgt->ctx_base) bnx2fc_process_new_cqes() 1082 bnx2fc_arm_cq(tgt); bnx2fc_process_new_cqes() 1083 atomic_add(num_free_sqes, &tgt->free_sqes); bnx2fc_process_new_cqes() 1085 spin_unlock_bh(&tgt->cq_lock); bnx2fc_process_new_cqes() 1101 struct bnx2fc_rport *tgt = hba->tgt_ofld_list[conn_id]; bnx2fc_fastpath_notification() local 1103 if (!tgt) { bnx2fc_fastpath_notification() 1108 bnx2fc_process_new_cqes(tgt); bnx2fc_fastpath_notification() 1123 struct bnx2fc_rport *tgt; bnx2fc_process_ofld_cmpl() local 1131 tgt = hba->tgt_ofld_list[conn_id]; bnx2fc_process_ofld_cmpl() 1132 if (!tgt) { bnx2fc_process_ofld_cmpl() 1136 BNX2FC_TGT_DBG(tgt, "Entered ofld compl - context_id = 0x%x\n", bnx2fc_process_ofld_cmpl() 1138 port = tgt->port; bnx2fc_process_ofld_cmpl() 1139 interface = tgt->port->priv; bnx2fc_process_ofld_cmpl() 1148 tgt->context_id = context_id; bnx2fc_process_ofld_cmpl() 1154 set_bit(BNX2FC_FLAG_CTX_ALLOC_FAILURE, &tgt->flags); bnx2fc_process_ofld_cmpl() 1158 set_bit(BNX2FC_FLAG_OFFLOADED, &tgt->flags); bnx2fc_process_ofld_cmpl() 1161 set_bit(BNX2FC_FLAG_OFLD_REQ_CMPL, &tgt->flags); bnx2fc_process_ofld_cmpl() 1162 wake_up_interruptible(&tgt->ofld_wait); bnx2fc_process_ofld_cmpl() 1177 struct bnx2fc_rport *tgt; bnx2fc_process_enable_conn_cmpl() local 1184 tgt = hba->tgt_ofld_list[conn_id]; bnx2fc_process_enable_conn_cmpl() 1185 if (!tgt) { bnx2fc_process_enable_conn_cmpl() 1190 BNX2FC_TGT_DBG(tgt, "Enable compl - context_id = 0x%x\n", bnx2fc_process_enable_conn_cmpl() 1197 if (tgt->context_id != context_id) { bnx2fc_process_enable_conn_cmpl() 1201 interface = tgt->port->priv; bnx2fc_process_enable_conn_cmpl() 1208 set_bit(BNX2FC_FLAG_ENABLED, &tgt->flags); bnx2fc_process_enable_conn_cmpl() 1211 set_bit(BNX2FC_FLAG_OFLD_REQ_CMPL, &tgt->flags); bnx2fc_process_enable_conn_cmpl() 1212 wake_up_interruptible(&tgt->ofld_wait); bnx2fc_process_enable_conn_cmpl() 1219 struct bnx2fc_rport *tgt; bnx2fc_process_conn_disable_cmpl() local 1223 tgt = hba->tgt_ofld_list[conn_id]; bnx2fc_process_conn_disable_cmpl() 1224 if (!tgt) { bnx2fc_process_conn_disable_cmpl() 1229 BNX2FC_TGT_DBG(tgt, PFX "disable_cmpl: conn_id %d\n", conn_id); bnx2fc_process_conn_disable_cmpl() 1234 set_bit(BNX2FC_FLAG_DISABLE_FAILED, &tgt->flags); bnx2fc_process_conn_disable_cmpl() 1235 set_bit(BNX2FC_FLAG_UPLD_REQ_COMPL, &tgt->flags); bnx2fc_process_conn_disable_cmpl() 1236 wake_up_interruptible(&tgt->upld_wait); bnx2fc_process_conn_disable_cmpl() 1239 BNX2FC_TGT_DBG(tgt, "disable successful\n"); bnx2fc_process_conn_disable_cmpl() 1240 clear_bit(BNX2FC_FLAG_OFFLOADED, &tgt->flags); bnx2fc_process_conn_disable_cmpl() 1241 clear_bit(BNX2FC_FLAG_ENABLED, &tgt->flags); bnx2fc_process_conn_disable_cmpl() 1242 set_bit(BNX2FC_FLAG_DISABLED, &tgt->flags); bnx2fc_process_conn_disable_cmpl() 1243 set_bit(BNX2FC_FLAG_UPLD_REQ_COMPL, &tgt->flags); bnx2fc_process_conn_disable_cmpl() 1244 wake_up_interruptible(&tgt->upld_wait); bnx2fc_process_conn_disable_cmpl() 1251 struct bnx2fc_rport *tgt; bnx2fc_process_conn_destroy_cmpl() local 1255 tgt = hba->tgt_ofld_list[conn_id]; bnx2fc_process_conn_destroy_cmpl() 1256 if (!tgt) { bnx2fc_process_conn_destroy_cmpl() 1261 BNX2FC_TGT_DBG(tgt, "destroy_cmpl: conn_id %d\n", conn_id); bnx2fc_process_conn_destroy_cmpl() 1269 BNX2FC_TGT_DBG(tgt, "upload successful\n"); bnx2fc_process_conn_destroy_cmpl() 1270 clear_bit(BNX2FC_FLAG_DISABLED, &tgt->flags); bnx2fc_process_conn_destroy_cmpl() 1271 set_bit(BNX2FC_FLAG_DESTROYED, &tgt->flags); bnx2fc_process_conn_destroy_cmpl() 1272 set_bit(BNX2FC_FLAG_UPLD_REQ_COMPL, &tgt->flags); bnx2fc_process_conn_destroy_cmpl() 1273 wake_up_interruptible(&tgt->upld_wait); bnx2fc_process_conn_destroy_cmpl() 1383 void bnx2fc_add_2_sq(struct bnx2fc_rport *tgt, u16 xid) bnx2fc_add_2_sq() argument 1387 sqe = &tgt->sq[tgt->sq_prod_idx]; bnx2fc_add_2_sq() 1391 sqe->wqe |= tgt->sq_curr_toggle_bit << FCOE_SQE_TOGGLE_BIT_SHIFT; bnx2fc_add_2_sq() 1394 if (++tgt->sq_prod_idx == BNX2FC_SQ_WQES_MAX) { bnx2fc_add_2_sq() 1395 tgt->sq_prod_idx = 0; bnx2fc_add_2_sq() 1396 tgt->sq_curr_toggle_bit = 1 - tgt->sq_curr_toggle_bit; bnx2fc_add_2_sq() 1400 void bnx2fc_ring_doorbell(struct bnx2fc_rport *tgt) bnx2fc_ring_doorbell() argument 1402 struct b577xx_doorbell_set_prod *sq_db = &tgt->sq_db; bnx2fc_ring_doorbell() 1406 sq_db->prod = tgt->sq_prod_idx | bnx2fc_ring_doorbell() 1407 (tgt->sq_curr_toggle_bit << 15); bnx2fc_ring_doorbell() 1409 writel(cpu_to_le32(msg), tgt->ctx_base); bnx2fc_ring_doorbell() 1414 int bnx2fc_map_doorbell(struct bnx2fc_rport *tgt) bnx2fc_map_doorbell() argument 1416 u32 context_id = tgt->context_id; bnx2fc_map_doorbell() 1417 struct fcoe_port *port = tgt->port; bnx2fc_map_doorbell() 1426 tgt->ctx_base = ioremap_nocache(reg_base + reg_off, 4); bnx2fc_map_doorbell() 1427 if (!tgt->ctx_base) bnx2fc_map_doorbell() 1432 char *bnx2fc_get_next_rqe(struct bnx2fc_rport *tgt, u8 num_items) bnx2fc_get_next_rqe() argument 1434 char *buf = (char *)tgt->rq + (tgt->rq_cons_idx * BNX2FC_RQ_BUF_SZ); bnx2fc_get_next_rqe() 1436 if (tgt->rq_cons_idx + num_items > BNX2FC_RQ_WQES_MAX) bnx2fc_get_next_rqe() 1439 tgt->rq_cons_idx += num_items; bnx2fc_get_next_rqe() 1441 if (tgt->rq_cons_idx >= BNX2FC_RQ_WQES_MAX) bnx2fc_get_next_rqe() 1442 tgt->rq_cons_idx -= BNX2FC_RQ_WQES_MAX; bnx2fc_get_next_rqe() 1447 void bnx2fc_return_rqe(struct bnx2fc_rport *tgt, u8 num_items) bnx2fc_return_rqe() argument 1450 u32 next_prod_idx = tgt->rq_prod_idx + num_items; bnx2fc_return_rqe() 1455 tgt->rq_prod_idx = next_prod_idx; bnx2fc_return_rqe() 1456 tgt->conn_db->rq_prod = tgt->rq_prod_idx; bnx2fc_return_rqe() 1465 struct bnx2fc_rport *tgt = seq_clnp_req->tgt; bnx2fc_init_seq_cleanup_task() local 1466 struct bnx2fc_interface *interface = tgt->port->priv; bnx2fc_init_seq_cleanup_task() 1474 u32 context_id = tgt->context_id; bnx2fc_init_seq_cleanup_task() 1554 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_init_cleanup_task() local 1555 u32 context_id = tgt->context_id; bnx2fc_init_cleanup_task() 1565 if (tgt->dev_type == TYPE_TAPE) bnx2fc_init_cleanup_task() 1591 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_init_mp_task() local 1630 if (tgt->dev_type == TYPE_TAPE) bnx2fc_init_mp_task() 1652 context_id = tgt->context_id; bnx2fc_init_mp_task() 1689 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_init_task() local 1692 int dev_type = tgt->dev_type; bnx2fc_init_task() 1777 context_id = tgt->context_id; bnx2fc_init_task() 170 bnx2fc_send_session_ofld_req(struct fcoe_port *port, struct bnx2fc_rport *tgt) bnx2fc_send_session_ofld_req() argument 355 bnx2fc_send_session_enable_req(struct fcoe_port *port, struct bnx2fc_rport *tgt) bnx2fc_send_session_enable_req() argument 425 bnx2fc_send_session_disable_req(struct fcoe_port *port, struct bnx2fc_rport *tgt) bnx2fc_send_session_disable_req() argument 490 bnx2fc_send_session_destroy_req(struct bnx2fc_hba *hba, struct bnx2fc_rport *tgt) bnx2fc_send_session_destroy_req() argument
|
H A D | bnx2fc_els.c | 22 static int bnx2fc_initiate_els(struct bnx2fc_rport *tgt, unsigned int op, 63 struct bnx2fc_rport *tgt = aborted_io_req->tgt; bnx2fc_send_rrq() local 64 struct fc_lport *lport = tgt->rdata->local_port; bnx2fc_send_rrq() 66 u32 sid = tgt->sid; bnx2fc_send_rrq() 90 rc = bnx2fc_initiate_els(tgt, ELS_RRQ, &rrq, sizeof(rrq), bnx2fc_send_rrq() 107 spin_lock_bh(&tgt->tgt_lock); bnx2fc_send_rrq() 109 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_send_rrq() 117 struct bnx2fc_rport *tgt; bnx2fc_l2_els_compl() local 145 tgt = els_req->tgt; bnx2fc_l2_els_compl() 166 bnx2fc_process_l2_frame_compl(tgt, buf, frame_len, l2_oxid); bnx2fc_l2_els_compl() 174 int bnx2fc_send_adisc(struct bnx2fc_rport *tgt, struct fc_frame *fp) bnx2fc_send_adisc() argument 179 struct fc_lport *lport = tgt->rdata->local_port; bnx2fc_send_adisc() 195 rc = bnx2fc_initiate_els(tgt, ELS_ADISC, adisc, sizeof(*adisc), bnx2fc_send_adisc() 202 int bnx2fc_send_logo(struct bnx2fc_rport *tgt, struct fc_frame *fp) bnx2fc_send_logo() argument 207 struct fc_lport *lport = tgt->rdata->local_port; bnx2fc_send_logo() 223 rc = bnx2fc_initiate_els(tgt, ELS_LOGO, logo, sizeof(*logo), bnx2fc_send_logo() 230 int bnx2fc_send_rls(struct bnx2fc_rport *tgt, struct fc_frame *fp) bnx2fc_send_rls() argument 235 struct fc_lport *lport = tgt->rdata->local_port; bnx2fc_send_rls() 250 rc = bnx2fc_initiate_els(tgt, ELS_RLS, rls, sizeof(*rls), bnx2fc_send_rls() 291 struct bnx2fc_rport *tgt = orig_io_req->tgt; bnx2fc_srr_compl() local 292 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_srr_compl() 296 spin_lock_bh(&tgt->tgt_lock); bnx2fc_srr_compl() 375 struct bnx2fc_rport *tgt; bnx2fc_rec_compl() local 394 tgt = orig_io_req->tgt; bnx2fc_rec_compl() 411 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_rec_compl() 413 spin_lock_bh(&tgt->tgt_lock); bnx2fc_rec_compl() 473 new_io_req = bnx2fc_cmd_alloc(tgt); bnx2fc_rec_compl() 483 rc = bnx2fc_post_io_req(tgt, new_io_req); bnx2fc_rec_compl() 555 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_rec_compl() 557 spin_lock_bh(&tgt->tgt_lock); bnx2fc_rec_compl() 577 struct bnx2fc_rport *tgt = orig_io_req->tgt; bnx2fc_send_rec() local 578 struct fc_lport *lport = tgt->rdata->local_port; bnx2fc_send_rec() 580 u32 sid = tgt->sid; bnx2fc_send_rec() 602 rc = bnx2fc_initiate_els(tgt, ELS_REC, &rec, sizeof(rec), bnx2fc_send_rec() 608 spin_lock_bh(&tgt->tgt_lock); bnx2fc_send_rec() 610 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_send_rec() 619 struct bnx2fc_rport *tgt = orig_io_req->tgt; bnx2fc_send_srr() local 620 struct fc_lport *lport = tgt->rdata->local_port; bnx2fc_send_srr() 646 rc = bnx2fc_initiate_els(tgt, ELS_SRR, &srr, sizeof(srr), bnx2fc_send_srr() 652 spin_lock_bh(&tgt->tgt_lock); bnx2fc_send_srr() 654 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_send_srr() 662 static int bnx2fc_initiate_els(struct bnx2fc_rport *tgt, unsigned int op, bnx2fc_initiate_els() argument 667 struct fcoe_port *port = tgt->port; bnx2fc_initiate_els() 669 struct fc_rport *rport = tgt->rport; bnx2fc_initiate_els() 692 if (!(test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags)) || bnx2fc_initiate_els() 693 (test_bit(BNX2FC_FLAG_EXPL_LOGO, &tgt->flags))) { bnx2fc_initiate_els() 694 printk(KERN_ERR PFX "els 0x%x: tgt not ready\n", op); bnx2fc_initiate_els() 698 els_req = bnx2fc_elstm_alloc(tgt, BNX2FC_ELS); bnx2fc_initiate_els() 706 els_req->tgt = tgt; bnx2fc_initiate_els() 715 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_els() 717 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_els() 736 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_els() 738 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_els() 748 did = tgt->rport->port_id; bnx2fc_initiate_els() 749 sid = tgt->sid; bnx2fc_initiate_els() 771 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_els() 773 if (!test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags)) { bnx2fc_initiate_els() 778 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_els() 784 bnx2fc_add_2_sq(tgt, xid); bnx2fc_initiate_els() 787 list_add_tail(&els_req->link, &tgt->els_queue); bnx2fc_initiate_els() 790 bnx2fc_ring_doorbell(tgt); bnx2fc_initiate_els() 791 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_els()
|
H A D | bnx2fc_io.c | 46 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_cmd_timeout() local 53 spin_lock_bh(&tgt->tgt_lock); bnx2fc_cmd_timeout() 60 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_cmd_timeout() 85 rdata = io_req->tgt->rdata; bnx2fc_cmd_timeout() 88 &tgt->flags); bnx2fc_cmd_timeout() 90 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_cmd_timeout() 95 "logo - tgt flags = 0x%lx\n", bnx2fc_cmd_timeout() 96 tgt->flags); bnx2fc_cmd_timeout() 124 rdata = io_req->tgt->rdata; bnx2fc_cmd_timeout() 127 &tgt->flags); bnx2fc_cmd_timeout() 129 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_cmd_timeout() 133 "logo - tgt flags = 0x%lx\n", bnx2fc_cmd_timeout() 134 tgt->flags); bnx2fc_cmd_timeout() 156 rdata = io_req->tgt->rdata; bnx2fc_cmd_timeout() 159 &tgt->flags); bnx2fc_cmd_timeout() 161 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_cmd_timeout() 203 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_cmd_timeout() 426 struct bnx2fc_cmd *bnx2fc_elstm_alloc(struct bnx2fc_rport *tgt, int type) bnx2fc_elstm_alloc() argument 428 struct fcoe_port *port = tgt->port; bnx2fc_elstm_alloc() 439 max_sqes = tgt->max_sqes; bnx2fc_elstm_alloc() 456 free_sqes = atomic_read(&tgt->free_sqes); bnx2fc_elstm_alloc() 458 (tgt->num_active_ios.counter >= max_sqes) || bnx2fc_elstm_alloc() 460 BNX2FC_TGT_DBG(tgt, "No free els_tm cmds available " bnx2fc_elstm_alloc() 462 tgt->num_active_ios.counter, tgt->max_sqes); bnx2fc_elstm_alloc() 475 atomic_inc(&tgt->num_active_ios); bnx2fc_elstm_alloc() 476 atomic_dec(&tgt->free_sqes); bnx2fc_elstm_alloc() 496 struct bnx2fc_cmd *bnx2fc_cmd_alloc(struct bnx2fc_rport *tgt) bnx2fc_cmd_alloc() argument 498 struct fcoe_port *port = tgt->port; bnx2fc_cmd_alloc() 515 free_sqes = atomic_read(&tgt->free_sqes); bnx2fc_cmd_alloc() 517 (tgt->num_active_ios.counter >= max_sqes) || bnx2fc_cmd_alloc() 530 atomic_inc(&tgt->num_active_ios); bnx2fc_cmd_alloc() 531 atomic_dec(&tgt->free_sqes); bnx2fc_cmd_alloc() 573 atomic_dec(&io_req->tgt->num_active_ios); bnx2fc_cmd_release() 696 struct bnx2fc_rport *tgt; bnx2fc_initiate_tmf() local 731 /* rport and tgt are allocated together, so tgt should be non-NULL */ bnx2fc_initiate_tmf() 732 tgt = (struct bnx2fc_rport *)&rp[1]; bnx2fc_initiate_tmf() 734 if (!(test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags))) { bnx2fc_initiate_tmf() 735 printk(KERN_ERR PFX "device_reset: tgt not offloaded\n"); bnx2fc_initiate_tmf() 740 io_req = bnx2fc_elstm_alloc(tgt, BNX2FC_TASK_MGMT_CMD); bnx2fc_initiate_tmf() 753 io_req->tgt = tgt; bnx2fc_initiate_tmf() 760 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 762 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 778 sid = tgt->sid; bnx2fc_initiate_tmf() 786 BNX2FC_TGT_DBG(tgt, "Initiate TMF - xid = 0x%x\n", xid); bnx2fc_initiate_tmf() 799 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 800 bnx2fc_add_2_sq(tgt, xid); bnx2fc_initiate_tmf() 804 list_add_tail(&io_req->link, &tgt->active_tm_queue); bnx2fc_initiate_tmf() 810 bnx2fc_ring_doorbell(tgt); bnx2fc_initiate_tmf() 811 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 815 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 826 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 829 spin_lock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 835 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_initiate_tmf() 838 BNX2FC_TGT_DBG(tgt, "task mgmt command failed...\n"); bnx2fc_initiate_tmf() 841 BNX2FC_TGT_DBG(tgt, "task mgmt command success...\n"); bnx2fc_initiate_tmf() 851 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_initiate_abts() local 852 struct fc_rport *rport = tgt->rport; bnx2fc_initiate_abts() 853 struct fc_rport_priv *rdata = tgt->rdata; bnx2fc_initiate_abts() 874 if (!test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags)) { bnx2fc_initiate_abts() 875 printk(KERN_ERR PFX "initiate_abts: tgt not offloaded\n"); bnx2fc_initiate_abts() 892 abts_io_req = bnx2fc_elstm_alloc(tgt, BNX2FC_ABTS); bnx2fc_initiate_abts() 902 abts_io_req->tgt = tgt; bnx2fc_initiate_abts() 915 sid = tgt->sid; bnx2fc_initiate_abts() 948 bnx2fc_add_2_sq(tgt, xid); bnx2fc_initiate_abts() 951 bnx2fc_ring_doorbell(tgt); bnx2fc_initiate_abts() 961 struct bnx2fc_rport *tgt = orig_io_req->tgt; bnx2fc_initiate_seq_cleanup() local 987 seq_clnp_req = bnx2fc_elstm_alloc(tgt, BNX2FC_SEQ_CLEANUP); bnx2fc_initiate_seq_cleanup() 997 seq_clnp_req->tgt = tgt; bnx2fc_initiate_seq_cleanup() 1019 bnx2fc_add_2_sq(tgt, xid); bnx2fc_initiate_seq_cleanup() 1022 bnx2fc_ring_doorbell(tgt); bnx2fc_initiate_seq_cleanup() 1030 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_initiate_cleanup() local 1047 cleanup_io_req = bnx2fc_elstm_alloc(tgt, BNX2FC_CLEANUP); bnx2fc_initiate_cleanup() 1057 cleanup_io_req->tgt = tgt; bnx2fc_initiate_cleanup() 1076 bnx2fc_add_2_sq(tgt, xid); bnx2fc_initiate_cleanup() 1079 bnx2fc_ring_doorbell(tgt); bnx2fc_initiate_cleanup() 1113 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_expl_logo() local 1114 struct fc_rport_priv *rdata = tgt->rdata; bnx2fc_expl_logo() 1119 BNX2FC_IO_DBG(io_req, "Expl logo - tgt flags = 0x%lx\n", bnx2fc_expl_logo() 1120 tgt->flags); bnx2fc_expl_logo() 1122 &tgt->flags); bnx2fc_expl_logo() 1126 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_expl_logo() 1138 clear_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags); bnx2fc_expl_logo() 1148 } while (!test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags)); bnx2fc_expl_logo() 1150 spin_lock_bh(&tgt->tgt_lock); bnx2fc_expl_logo() 1167 struct bnx2fc_rport *tgt; bnx2fc_eh_abort() local 1181 tgt = (struct bnx2fc_rport *)&rp[1]; bnx2fc_eh_abort() 1183 BNX2FC_TGT_DBG(tgt, "Entered bnx2fc_eh_abort\n"); bnx2fc_eh_abort() 1185 spin_lock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1190 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1199 BUG_ON(tgt != io_req->tgt); bnx2fc_eh_abort() 1207 if (tgt->flush_in_prog) { bnx2fc_eh_abort() 1211 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1227 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1241 list_add_tail(&io_req->link, &tgt->io_retire_queue); bnx2fc_eh_abort() 1270 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1272 spin_lock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1276 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1280 spin_lock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1307 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_eh_abort() 1320 struct bnx2fc_rport *tgt = orig_io_req->tgt; bnx2fc_process_seq_cleanup_compl() local 1332 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_process_seq_cleanup_compl() 1334 spin_lock_bh(&tgt->tgt_lock); bnx2fc_process_seq_cleanup_compl() 1366 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_process_abts_compl() local 1442 list_add_tail(&io_req->link, &tgt->io_retire_queue); bnx2fc_process_abts_compl() 1452 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_lun_reset_cmpl() local 1464 list_for_each_entry_safe(cmd, tmp, &tgt->active_cmd_queue, link) { bnx2fc_lun_reset_cmpl() 1465 BNX2FC_TGT_DBG(tgt, "LUN RST cmpl: scan for pending IOs\n"); bnx2fc_lun_reset_cmpl() 1489 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_tgt_reset_cmpl() local 1499 list_for_each_entry_safe(cmd, tmp, &tgt->active_cmd_queue, link) { bnx2fc_tgt_reset_cmpl() 1500 BNX2FC_TGT_DBG(tgt, "TGT RST cmpl: scan for pending IOs\n"); bnx2fc_tgt_reset_cmpl() 1596 /* check if the io_req exists in tgt's tmf_q */ bnx2fc_process_tm_compl() 1748 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_parse_fcp_rsp() local 1796 rq_data = bnx2fc_get_next_rqe(tgt, 1); bnx2fc_parse_fcp_rsp() 1801 dummy = bnx2fc_get_next_rqe(tgt, 1); bnx2fc_parse_fcp_rsp() 1826 bnx2fc_return_rqe(tgt, 1); bnx2fc_parse_fcp_rsp() 1844 struct bnx2fc_rport *tgt; bnx2fc_queuecommand() local 1861 /* rport and tgt are allocated together, so tgt should be non-NULL */ bnx2fc_queuecommand() 1862 tgt = (struct bnx2fc_rport *)&rp[1]; bnx2fc_queuecommand() 1864 if (!test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags)) { bnx2fc_queuecommand() 1872 if (tgt->retry_delay_timestamp) { bnx2fc_queuecommand() 1873 if (time_after(jiffies, tgt->retry_delay_timestamp)) { bnx2fc_queuecommand() 1874 tgt->retry_delay_timestamp = 0; bnx2fc_queuecommand() 1882 spin_lock_bh(&tgt->tgt_lock); bnx2fc_queuecommand() 1884 io_req = bnx2fc_cmd_alloc(tgt); bnx2fc_queuecommand() 1891 if (bnx2fc_post_io_req(tgt, io_req)) { bnx2fc_queuecommand() 1898 spin_unlock_bh(&tgt->tgt_lock); bnx2fc_queuecommand() 1908 struct bnx2fc_rport *tgt = io_req->tgt; bnx2fc_process_scsi_cmd_compl() local 1913 /* scsi_cmd_cmpl is called with tgt lock held */ bnx2fc_process_scsi_cmd_compl() 1949 list_add_tail(&io_req->link, &tgt->io_retire_queue); bnx2fc_process_scsi_cmd_compl() 1980 for the rport/tgt */ bnx2fc_process_scsi_cmd_compl() 1981 tgt->retry_delay_timestamp = jiffies + bnx2fc_process_scsi_cmd_compl() 1999 int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, bnx2fc_post_io_req() argument 2005 struct fcoe_port *port = tgt->port; bnx2fc_post_io_req() 2018 io_req->tgt = tgt; bnx2fc_post_io_req() 2054 if (tgt->flush_in_prog) { bnx2fc_post_io_req() 2060 if (!test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags)) { bnx2fc_post_io_req() 2067 if (tgt->io_timeout) bnx2fc_post_io_req() 2070 bnx2fc_add_2_sq(tgt, xid); bnx2fc_post_io_req() 2076 list_add_tail(&io_req->link, &tgt->active_cmd_queue); bnx2fc_post_io_req() 2079 bnx2fc_ring_doorbell(tgt); bnx2fc_post_io_req()
|
H A D | bnx2fc.h | 427 struct bnx2fc_rport *tgt; member in struct:bnx2fc_cmd 478 struct bnx2fc_rport *tgt; member in struct:bnx2fc_work 490 struct bnx2fc_cmd *bnx2fc_cmd_alloc(struct bnx2fc_rport *tgt); 491 struct bnx2fc_cmd *bnx2fc_elstm_alloc(struct bnx2fc_rport *tgt, int type); 497 struct bnx2fc_rport *tgt); 499 struct bnx2fc_rport *tgt); 501 struct bnx2fc_rport *tgt); 503 struct bnx2fc_rport *tgt); 504 int bnx2fc_map_doorbell(struct bnx2fc_rport *tgt); 514 char *bnx2fc_get_next_rqe(struct bnx2fc_rport *tgt, u8 num_items); 515 void bnx2fc_return_rqe(struct bnx2fc_rport *tgt, u8 num_items); 518 int bnx2fc_send_adisc(struct bnx2fc_rport *tgt, struct fc_frame *fp); 519 int bnx2fc_send_logo(struct bnx2fc_rport *tgt, struct fc_frame *fp); 520 int bnx2fc_send_rls(struct bnx2fc_rport *tgt, struct fc_frame *fp); 537 void bnx2fc_add_2_sq(struct bnx2fc_rport *tgt, u16 xid); 538 void bnx2fc_ring_doorbell(struct bnx2fc_rport *tgt); 566 void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt); 573 void bnx2fc_arm_cq(struct bnx2fc_rport *tgt); 574 int bnx2fc_process_new_cqes(struct bnx2fc_rport *tgt); 575 void bnx2fc_process_cq_compl(struct bnx2fc_rport *tgt, u16 wqe); 578 void bnx2fc_process_l2_frame_compl(struct bnx2fc_rport *tgt, 582 int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, struct bnx2fc_cmd *io_req);
|
H A D | bnx2fc_debug.h | 42 void BNX2FC_TGT_DBG(const struct bnx2fc_rport *tgt, const char *fmt, ...);
|
H A D | bnx2fc_fcoe.c | 173 struct bnx2fc_rport *tgt; bnx2fc_cleanup() local 180 tgt = hba->tgt_ofld_list[i]; bnx2fc_cleanup() 181 if (tgt) { bnx2fc_cleanup() 183 if (tgt->port == port) { bnx2fc_cleanup() 185 BNX2FC_TGT_DBG(tgt, "flush/cleanup\n"); bnx2fc_cleanup() 186 bnx2fc_flush_active_ios(tgt); bnx2fc_cleanup() 195 static int bnx2fc_xmit_l2_frame(struct bnx2fc_rport *tgt, bnx2fc_xmit_l2_frame() argument 198 struct fc_rport_priv *rdata = tgt->rdata; bnx2fc_xmit_l2_frame() 203 BNX2FC_TGT_DBG(tgt, "Xmit L2 frame rport = 0x%x, oxid = 0x%x, " bnx2fc_xmit_l2_frame() 211 rc = bnx2fc_send_adisc(tgt, fp); bnx2fc_xmit_l2_frame() 214 rc = bnx2fc_send_logo(tgt, fp); bnx2fc_xmit_l2_frame() 217 rc = bnx2fc_send_rls(tgt, fp); bnx2fc_xmit_l2_frame() 224 BNX2FC_TGT_DBG(tgt, "ABTS frame\n"); bnx2fc_xmit_l2_frame() 226 BNX2FC_TGT_DBG(tgt, "Send L2 frame type 0x%x " bnx2fc_xmit_l2_frame() 254 struct bnx2fc_rport *tgt; bnx2fc_xmit() local 299 tgt = bnx2fc_tgt_lookup(port, ntoh24(fh->fh_d_id)); bnx2fc_xmit() 300 if (tgt && (test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags))) { bnx2fc_xmit() 305 rc = bnx2fc_xmit_l2_frame(tgt, fp); bnx2fc_xmit() 616 bnx2fc_process_cq_compl(work->tgt, work->wqe); bnx2fc_percpu_io_thread() 1326 printk(KERN_ERR PFX "Unable to allocate tgt offload list\n"); bnx2fc_hba_create() 2493 bnx2fc_process_cq_compl(work->tgt, work->wqe); bnx2fc_percpu_thread_destroy() 2791 .eh_target_reset_handler = bnx2fc_eh_target_reset, /* tgt reset */
|
/linux-4.1.27/drivers/staging/lustre/lustre/lmv/ |
H A D | lmv_obd.c | 59 struct lmv_tgt_desc *tgt, lmv_activate_target() 62 if (tgt->ltd_active == activate) lmv_activate_target() 65 tgt->ltd_active = activate; lmv_activate_target() 79 struct lmv_tgt_desc *uninitialized_var(tgt); lmv_set_mdc_active() 89 tgt = lmv->tgts[i]; lmv_set_mdc_active() 90 if (tgt == NULL || tgt->ltd_exp == NULL) lmv_set_mdc_active() 94 tgt->ltd_uuid.uuid, tgt->ltd_exp->exp_handle.h_cookie); lmv_set_mdc_active() 96 if (obd_uuid_equals(uuid, &tgt->ltd_uuid)) lmv_set_mdc_active() 105 obd = class_exp2obd(tgt->ltd_exp); lmv_set_mdc_active() 116 if (tgt->ltd_active == activate) { lmv_set_mdc_active() 124 lmv_activate_target(lmv, tgt, activate); lmv_set_mdc_active() 265 struct lmv_tgt_desc *tgt; lmv_set_timeouts() local 277 tgt = lmv->tgts[i]; lmv_set_timeouts() 278 if (tgt == NULL || tgt->ltd_exp == NULL || tgt->ltd_active == 0) lmv_set_timeouts() 281 obd_set_info_async(NULL, tgt->ltd_exp, sizeof(KEY_INTERMDS), lmv_set_timeouts() 338 static int lmv_connect_mdc(struct obd_device *obd, struct lmv_tgt_desc *tgt) lmv_connect_mdc() argument 349 mdc_obd = class_find_client_obd(&tgt->ltd_uuid, LUSTRE_MDC_NAME, lmv_connect_mdc() 352 CERROR("target %s not attached\n", tgt->ltd_uuid.uuid); lmv_connect_mdc() 358 tgt->ltd_uuid.uuid, obd->obd_uuid.uuid, lmv_connect_mdc() 362 CERROR("target %s is not set up\n", tgt->ltd_uuid.uuid); lmv_connect_mdc() 369 CERROR("target %s connect error %d\n", tgt->ltd_uuid.uuid, rc); lmv_connect_mdc() 382 target.ft_idx = tgt->ltd_idx; lmv_connect_mdc() 390 tgt->ltd_uuid.uuid, rc); lmv_connect_mdc() 400 (void *)(tgt - lmv->tgts[0])); lmv_connect_mdc() 407 tgt->ltd_active = 1; lmv_connect_mdc() 408 tgt->ltd_exp = mdc_exp; lmv_connect_mdc() 411 md_init_ea_size(tgt->ltd_exp, lmv->max_easize, lmv->max_def_easize, lmv_connect_mdc() 454 struct lmv_tgt_desc *tgt; lmv_add_target() local 475 tgt = lmv->tgts[index]; lmv_add_target() 478 obd_uuid2str(&tgt->ltd_uuid), index, -EEXIST); lmv_add_target() 514 OBD_ALLOC_PTR(tgt); lmv_add_target() 515 if (!tgt) { lmv_add_target() 520 mutex_init(&tgt->ltd_fid_mutex); lmv_add_target() 521 tgt->ltd_idx = index; lmv_add_target() 522 tgt->ltd_uuid = *uuidp; lmv_add_target() 523 tgt->ltd_active = 0; lmv_add_target() 524 lmv->tgts[index] = tgt; lmv_add_target() 529 rc = lmv_connect_mdc(obd, tgt); lmv_add_target() 533 memset(tgt, 0, sizeof(*tgt)); lmv_add_target() 549 struct lmv_tgt_desc *tgt; lmv_check_connect() local 575 tgt = lmv->tgts[i]; lmv_check_connect() 576 if (tgt == NULL) lmv_check_connect() 578 rc = lmv_connect_mdc(obd, tgt); lmv_check_connect() 594 tgt = lmv->tgts[i]; lmv_check_connect() 595 if (tgt == NULL) lmv_check_connect() 597 tgt->ltd_active = 0; lmv_check_connect() 598 if (tgt->ltd_exp) { lmv_check_connect() 600 rc2 = obd_disconnect(tgt->ltd_exp); lmv_check_connect() 603 tgt->ltd_uuid.uuid, i, rc2); lmv_check_connect() 612 static int lmv_disconnect_mdc(struct obd_device *obd, struct lmv_tgt_desc *tgt) lmv_disconnect_mdc() argument 619 LASSERT(tgt != NULL); lmv_disconnect_mdc() 622 mdc_obd = class_exp2obd(tgt->ltd_exp); lmv_disconnect_mdc() 634 rc = obd_fid_fini(tgt->ltd_exp->exp_obd); lmv_disconnect_mdc() 639 tgt->ltd_exp->exp_obd->obd_name, lmv_disconnect_mdc() 640 tgt->ltd_exp->exp_obd->obd_uuid.uuid); lmv_disconnect_mdc() 642 obd_register_observer(tgt->ltd_exp->exp_obd, NULL); lmv_disconnect_mdc() 643 rc = obd_disconnect(tgt->ltd_exp); lmv_disconnect_mdc() 645 if (tgt->ltd_active) { lmv_disconnect_mdc() 647 tgt->ltd_uuid.uuid, rc); lmv_disconnect_mdc() 651 lmv_activate_target(lmv, tgt, 0); lmv_disconnect_mdc() 652 tgt->ltd_exp = NULL; lmv_disconnect_mdc() 704 struct lmv_tgt_desc *tgt; lmv_fid2path() local 710 tgt = lmv_find_target(lmv, &gf->gf_fid); lmv_fid2path() 711 if (IS_ERR(tgt)) lmv_fid2path() 712 return PTR_ERR(tgt); lmv_fid2path() 715 rc = obd_iocontrol(OBD_IOC_FID2PATH, tgt->ltd_exp, len, gf, uarg); lmv_fid2path() 743 tgt->ltd_exp->exp_obd->obd_name, lmv_fid2path() 763 tgt->ltd_exp->exp_obd->obd_name, lmv_fid2path() 769 tgt = lmv_find_target(lmv, &gf->gf_fid); lmv_fid2path() 770 if (IS_ERR(tgt)) { lmv_fid2path() 955 struct lmv_tgt_desc *tgt = NULL; lmv_iocontrol() local 962 tgt = lmv->tgts[qctl->qc_idx]; lmv_iocontrol() 963 if (tgt == NULL || tgt->ltd_exp == NULL) lmv_iocontrol() 967 tgt = lmv->tgts[i]; lmv_iocontrol() 968 if (tgt == NULL) lmv_iocontrol() 970 if (!obd_uuid_equals(&tgt->ltd_uuid, lmv_iocontrol() 974 if (tgt->ltd_exp == NULL) lmv_iocontrol() 986 LASSERT(tgt && tgt->ltd_exp); lmv_iocontrol() 992 rc = obd_quotactl(tgt->ltd_exp, oqctl); lmv_iocontrol() 996 qctl->obd_uuid = tgt->ltd_uuid; lmv_iocontrol() 1030 struct lmv_tgt_desc *tgt; lmv_iocontrol() local 1032 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_iocontrol() 1033 if (IS_ERR(tgt)) lmv_iocontrol() 1034 return PTR_ERR(tgt); lmv_iocontrol() 1036 if (tgt->ltd_exp == NULL) lmv_iocontrol() 1039 rc = obd_iocontrol(cmd, tgt->ltd_exp, len, karg, uarg); lmv_iocontrol() 1044 struct lmv_tgt_desc *tgt; lmv_iocontrol() local 1046 tgt = lmv_find_target(lmv, &hpk->hpk_fid); lmv_iocontrol() 1047 if (IS_ERR(tgt)) lmv_iocontrol() 1048 return PTR_ERR(tgt); lmv_iocontrol() 1049 rc = obd_iocontrol(cmd, tgt->ltd_exp, len, karg, uarg); lmv_iocontrol() 1054 struct lmv_tgt_desc *tgt; lmv_iocontrol() local 1064 tgt = lmv_find_target(lmv, lmv_iocontrol() 1066 if (IS_ERR(tgt)) lmv_iocontrol() 1067 return PTR_ERR(tgt); lmv_iocontrol() 1068 rc = obd_iocontrol(cmd, tgt->ltd_exp, len, karg, uarg); lmv_iocontrol() 1252 struct lmv_tgt_desc *tgt; __lmv_fid_alloc() local 1255 tgt = lmv_get_target(lmv, mds); __lmv_fid_alloc() 1256 if (IS_ERR(tgt)) __lmv_fid_alloc() 1257 return PTR_ERR(tgt); __lmv_fid_alloc() 1263 mutex_lock(&tgt->ltd_fid_mutex); __lmv_fid_alloc() 1265 if (tgt->ltd_active == 0 || tgt->ltd_exp == NULL) { __lmv_fid_alloc() 1271 * Asking underlaying tgt layer to allocate new fid. __lmv_fid_alloc() 1273 rc = obd_fid_alloc(tgt->ltd_exp, fid, NULL); __lmv_fid_alloc() 1280 mutex_unlock(&tgt->ltd_fid_mutex); __lmv_fid_alloc() 1503 struct lmv_tgt_desc *tgt; lmv_getxattr() local 1510 tgt = lmv_find_target(lmv, fid); lmv_getxattr() 1511 if (IS_ERR(tgt)) lmv_getxattr() 1512 return PTR_ERR(tgt); lmv_getxattr() 1514 rc = md_getxattr(tgt->ltd_exp, fid, oc, valid, name, input, lmv_getxattr() 1528 struct lmv_tgt_desc *tgt; lmv_setxattr() local 1535 tgt = lmv_find_target(lmv, fid); lmv_setxattr() 1536 if (IS_ERR(tgt)) lmv_setxattr() 1537 return PTR_ERR(tgt); lmv_setxattr() 1539 rc = md_setxattr(tgt->ltd_exp, fid, oc, valid, name, input, lmv_setxattr() 1551 struct lmv_tgt_desc *tgt; lmv_getattr() local 1558 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_getattr() 1559 if (IS_ERR(tgt)) lmv_getattr() 1560 return PTR_ERR(tgt); lmv_getattr() 1563 op_data->op_mds = tgt->ltd_idx; lmv_getattr() 1567 rc = md_getattr(tgt->ltd_exp, op_data, request); lmv_getattr() 1635 struct lmv_tgt_desc *tgt; lmv_close() local 1642 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_close() 1643 if (IS_ERR(tgt)) lmv_close() 1644 return PTR_ERR(tgt); lmv_close() 1647 rc = md_close(tgt->ltd_exp, op_data, mod, request); lmv_close() 1655 struct lmv_tgt_desc *tgt; lmv_locate_mds() local 1657 tgt = lmv_find_target(lmv, fid); lmv_locate_mds() 1658 if (IS_ERR(tgt)) lmv_locate_mds() 1659 return tgt; lmv_locate_mds() 1661 op_data->op_mds = tgt->ltd_idx; lmv_locate_mds() 1663 return tgt; lmv_locate_mds() 1673 struct lmv_tgt_desc *tgt; lmv_create() local 1683 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid1); lmv_create() 1684 if (IS_ERR(tgt)) lmv_create() 1685 return PTR_ERR(tgt); lmv_create() 1696 rc = md_create(tgt->ltd_exp, op_data, data, datalen, mode, uid, gid, lmv_create() 1713 struct lmv_tgt_desc *tgt; lmv_done_writing() local 1720 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_done_writing() 1721 if (IS_ERR(tgt)) lmv_done_writing() 1722 return PTR_ERR(tgt); lmv_done_writing() 1724 rc = md_done_writing(tgt->ltd_exp, op_data, mod); lmv_done_writing() 1738 struct lmv_tgt_desc *tgt; lmv_enqueue_remote() local 1766 tgt = lmv_find_target(lmv, &fid1); lmv_enqueue_remote() 1767 if (IS_ERR(tgt)) { lmv_enqueue_remote() 1768 rc = PTR_ERR(tgt); lmv_enqueue_remote() 1781 rc = md_enqueue(tgt->ltd_exp, einfo, it, rdata, lockh, lmv_enqueue_remote() 1797 struct lmv_tgt_desc *tgt; lmv_enqueue() local 1807 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid1); lmv_enqueue() 1808 if (IS_ERR(tgt)) lmv_enqueue() 1809 return PTR_ERR(tgt); lmv_enqueue() 1812 LL_IT2STR(it), PFID(&op_data->op_fid1), tgt->ltd_idx); lmv_enqueue() 1814 rc = md_enqueue(tgt->ltd_exp, einfo, it, op_data, lockh, lmv_enqueue() 1831 struct lmv_tgt_desc *tgt; lmv_getattr_name() local 1839 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid1); lmv_getattr_name() 1840 if (IS_ERR(tgt)) lmv_getattr_name() 1841 return PTR_ERR(tgt); lmv_getattr_name() 1845 tgt->ltd_idx); lmv_getattr_name() 1847 rc = md_getattr_name(tgt->ltd_exp, op_data, request); lmv_getattr_name() 1860 tgt = lmv_find_target(lmv, &rid); lmv_getattr_name() 1861 if (IS_ERR(tgt)) { lmv_getattr_name() 1863 return PTR_ERR(tgt); lmv_getattr_name() 1870 rc = md_getattr_name(tgt->ltd_exp, op_data, &req); lmv_getattr_name() 1891 struct lmv_tgt_desc *tgt; lmv_early_cancel() local 1898 tgt = lmv_find_target(lmv, fid); lmv_early_cancel() 1899 if (IS_ERR(tgt)) lmv_early_cancel() 1900 return PTR_ERR(tgt); lmv_early_cancel() 1902 if (tgt->ltd_idx != op_tgt) { lmv_early_cancel() 1905 rc = md_cancel_unused(tgt->ltd_exp, fid, &policy, lmv_early_cancel() 1927 struct lmv_tgt_desc *tgt; lmv_link() local 1943 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid2); lmv_link() 1944 if (IS_ERR(tgt)) lmv_link() 1945 return PTR_ERR(tgt); lmv_link() 1951 rc = lmv_early_cancel(exp, op_data, tgt->ltd_idx, LCK_EX, lmv_link() 1956 rc = md_link(tgt->ltd_exp, op_data, request); lmv_link() 1998 * Cancel UPDATE locks on tgt parent (fid2), tgt_tgt is its lmv_rename() 2006 * Cancel LOOKUP locks on tgt child (fid4) for parent tgt_tgt. lmv_rename() 2015 * Cancel all the locks on tgt child (fid4). lmv_rename() 2035 struct lmv_tgt_desc *tgt; lmv_setattr() local 2046 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_setattr() 2047 if (IS_ERR(tgt)) lmv_setattr() 2048 return PTR_ERR(tgt); lmv_setattr() 2050 rc = md_setattr(tgt->ltd_exp, op_data, ea, ealen, ea2, lmv_setattr() 2061 struct lmv_tgt_desc *tgt; lmv_sync() local 2068 tgt = lmv_find_target(lmv, fid); lmv_sync() 2069 if (IS_ERR(tgt)) lmv_sync() 2070 return PTR_ERR(tgt); lmv_sync() 2072 rc = md_sync(tgt->ltd_exp, fid, oc, request); lmv_sync() 2188 struct lmv_tgt_desc *tgt; lmv_readpage() local 2197 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_readpage() 2198 if (IS_ERR(tgt)) lmv_readpage() 2199 return PTR_ERR(tgt); lmv_readpage() 2201 rc = md_readpage(tgt->ltd_exp, op_data, pages, request); lmv_readpage() 2224 struct lmv_tgt_desc *tgt = NULL; lmv_unlink() local 2234 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid2); lmv_unlink() 2236 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid1); lmv_unlink() 2237 if (IS_ERR(tgt)) lmv_unlink() 2238 return PTR_ERR(tgt); lmv_unlink() 2256 rc = lmv_early_cancel(exp, op_data, tgt->ltd_idx, LCK_EX, lmv_unlink() 2263 PFID(&op_data->op_fid1), PFID(&op_data->op_fid2), tgt->ltd_idx); lmv_unlink() 2265 rc = md_unlink(tgt->ltd_exp, op_data, request); lmv_unlink() 2342 struct lmv_tgt_desc *tgt; lmv_get_info() local 2351 tgt = lmv->tgts[i]; lmv_get_info() 2355 if (tgt == NULL || tgt->ltd_exp == NULL) lmv_get_info() 2358 if (!obd_get_info(env, tgt->ltd_exp, keylen, key, lmv_get_info() 2394 struct lmv_tgt_desc *tgt; lmv_set_info_async() local 2411 tgt = lmv->tgts[i]; lmv_set_info_async() 2413 if (tgt == NULL || tgt->ltd_exp == NULL) lmv_set_info_async() 2416 err = obd_set_info_async(env, tgt->ltd_exp, lmv_set_info_async() 2624 struct lmv_tgt_desc *tgt; lmv_set_open_replay_data() local 2626 tgt = lmv_find_target(lmv, &och->och_fid); lmv_set_open_replay_data() 2627 if (IS_ERR(tgt)) lmv_set_open_replay_data() 2628 return PTR_ERR(tgt); lmv_set_open_replay_data() 2630 return md_set_open_replay_data(tgt->ltd_exp, och, it); lmv_set_open_replay_data() 2638 struct lmv_tgt_desc *tgt; lmv_clear_open_replay_data() local 2640 tgt = lmv_find_target(lmv, &och->och_fid); lmv_clear_open_replay_data() 2641 if (IS_ERR(tgt)) lmv_clear_open_replay_data() 2642 return PTR_ERR(tgt); lmv_clear_open_replay_data() 2644 return md_clear_open_replay_data(tgt->ltd_exp, och); lmv_clear_open_replay_data() 2654 struct lmv_tgt_desc *tgt; lmv_get_remote_perm() local 2661 tgt = lmv_find_target(lmv, fid); lmv_get_remote_perm() 2662 if (IS_ERR(tgt)) lmv_get_remote_perm() 2663 return PTR_ERR(tgt); lmv_get_remote_perm() 2665 rc = md_get_remote_perm(tgt->ltd_exp, fid, oc, suppgid, request); lmv_get_remote_perm() 2674 struct lmv_tgt_desc *tgt; lmv_renew_capa() local 2681 tgt = lmv_find_target(lmv, &oc->c_capa.lc_fid); lmv_renew_capa() 2682 if (IS_ERR(tgt)) lmv_renew_capa() 2683 return PTR_ERR(tgt); lmv_renew_capa() 2685 rc = md_renew_capa(tgt->ltd_exp, oc, cb); lmv_renew_capa() 2705 struct lmv_tgt_desc *tgt = NULL; lmv_intent_getattr_async() local 2712 tgt = lmv_find_target(lmv, &op_data->op_fid1); lmv_intent_getattr_async() 2713 if (IS_ERR(tgt)) lmv_intent_getattr_async() 2714 return PTR_ERR(tgt); lmv_intent_getattr_async() 2716 rc = md_intent_getattr_async(tgt->ltd_exp, minfo, einfo); lmv_intent_getattr_async() 2725 struct lmv_tgt_desc *tgt; lmv_revalidate_lock() local 2732 tgt = lmv_find_target(lmv, fid); lmv_revalidate_lock() 2733 if (IS_ERR(tgt)) lmv_revalidate_lock() 2734 return PTR_ERR(tgt); lmv_revalidate_lock() 2736 rc = md_revalidate_lock(tgt->ltd_exp, it, fid, bits); lmv_revalidate_lock() 2750 struct lmv_tgt_desc *tgt = lmv->tgts[0]; lmv_quotactl() local 2754 if (!lmv->desc.ld_tgt_count || !tgt->ltd_active) { lmv_quotactl() 2760 rc = obd_quotactl(tgt->ltd_exp, oqctl); lmv_quotactl() 2767 tgt = lmv->tgts[i]; lmv_quotactl() 2769 if (tgt == NULL || tgt->ltd_exp == NULL || tgt->ltd_active == 0) lmv_quotactl() 2771 if (!tgt->ltd_active) { lmv_quotactl() 2776 err = obd_quotactl(tgt->ltd_exp, oqctl); lmv_quotactl() 2797 struct lmv_tgt_desc *tgt; lmv_quotacheck() local 2802 tgt = lmv->tgts[i]; lmv_quotacheck() 2803 if (tgt == NULL || tgt->ltd_exp == NULL || !tgt->ltd_active) { lmv_quotacheck() 2808 err = obd_quotacheck(tgt->ltd_exp, oqctl); lmv_quotacheck() 58 lmv_activate_target(struct lmv_obd *lmv, struct lmv_tgt_desc *tgt, int activate) lmv_activate_target() argument
|
H A D | lmv_intent.c | 66 struct lmv_tgt_desc *tgt; lmv_intent_remote() local 96 tgt = lmv_find_target(lmv, &body->fid1); lmv_intent_remote() 97 if (IS_ERR(tgt)) { lmv_intent_remote() 98 rc = PTR_ERR(tgt); lmv_intent_remote() 123 PFID(&body->fid1), tgt->ltd_idx); lmv_intent_remote() 125 rc = md_intent_lock(tgt->ltd_exp, op_data, lmm, lmmsize, it, lmv_intent_remote() 167 struct lmv_tgt_desc *tgt; lmv_intent_open() local 171 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid1); lmv_intent_open() 172 if (IS_ERR(tgt)) lmv_intent_open() 173 return PTR_ERR(tgt); lmv_intent_open() 191 PFID(&op_data->op_fid2), op_data->op_name, tgt->ltd_idx); lmv_intent_open() 193 rc = md_intent_lock(tgt->ltd_exp, op_data, lmm, lmmsize, it, flags, lmv_intent_open() 250 struct lmv_tgt_desc *tgt = NULL; lmv_intent_lookup() local 254 tgt = lmv_locate_mds(lmv, op_data, &op_data->op_fid1); lmv_intent_lookup() 255 if (IS_ERR(tgt)) lmv_intent_lookup() 256 return PTR_ERR(tgt); lmv_intent_lookup() 265 tgt->ltd_idx); lmv_intent_lookup() 269 rc = md_intent_lock(tgt->ltd_exp, op_data, lmm, lmmsize, it, lmv_intent_lookup()
|
H A D | lproc_lmv.c | 175 struct lmv_tgt_desc *tgt = v; lmv_tgt_seq_show() local 177 if (tgt == NULL) lmv_tgt_seq_show() 180 tgt->ltd_idx, tgt->ltd_uuid.uuid, lmv_tgt_seq_show() 181 tgt->ltd_active ? "" : "IN"); lmv_tgt_seq_show()
|
/linux-4.1.27/drivers/firewire/ |
H A D | sbp2.c | 132 struct sbp2_target *tgt; member in struct:sbp2_logical_unit 182 static struct fw_device *target_parent_device(struct sbp2_target *tgt) target_parent_device() argument 184 return fw_parent_device(tgt->unit); target_parent_device() 187 static const struct device *tgt_dev(const struct sbp2_target *tgt) tgt_dev() argument 189 return &tgt->unit->device; tgt_dev() 194 return &lu->tgt->unit->device; lu_dev() 448 spin_lock_irqsave(&lu->tgt->lock, flags); sbp2_status_write() 457 spin_unlock_irqrestore(&lu->tgt->lock, flags); sbp2_status_write() 484 spin_lock_irqsave(&orb->lu->tgt->lock, flags); complete_transaction() 490 spin_unlock_irqrestore(&orb->lu->tgt->lock, flags); complete_transaction() 495 spin_unlock_irqrestore(&orb->lu->tgt->lock, flags); complete_transaction() 504 struct fw_device *device = target_parent_device(lu->tgt); sbp2_send_orb() 512 spin_lock_irqsave(&lu->tgt->lock, flags); sbp2_send_orb() 514 spin_unlock_irqrestore(&lu->tgt->lock, flags); sbp2_send_orb() 526 struct fw_device *device = target_parent_device(lu->tgt); sbp2_cancel_orbs() 532 spin_lock_irq(&lu->tgt->lock); sbp2_cancel_orbs() 534 spin_unlock_irq(&lu->tgt->lock); sbp2_cancel_orbs() 564 struct fw_device *device = target_parent_device(lu->tgt); sbp2_send_management_orb() 603 timeout = lu->tgt->mgt_orb_timeout; sbp2_send_management_orb() 618 lu->tgt->management_agent_address); sbp2_send_management_orb() 660 struct fw_device *device = target_parent_device(lu->tgt); sbp2_agent_reset() 664 lu->tgt->node_id, lu->generation, device->max_speed, sbp2_agent_reset() 677 struct fw_device *device = target_parent_device(lu->tgt); sbp2_agent_reset_no_wait() 686 lu->tgt->node_id, lu->generation, device->max_speed, sbp2_agent_reset_no_wait() 691 static inline void sbp2_allow_block(struct sbp2_target *tgt) sbp2_allow_block() argument 693 spin_lock_irq(&tgt->lock); sbp2_allow_block() 694 --tgt->dont_block; sbp2_allow_block() 695 spin_unlock_irq(&tgt->lock); sbp2_allow_block() 699 * Blocks lu->tgt if all of the following conditions are met: 704 * Note, scsi_block_requests() must be called while holding tgt->lock, 710 struct sbp2_target *tgt = lu->tgt; sbp2_conditionally_block() local 711 struct fw_card *card = target_parent_device(tgt)->card; sbp2_conditionally_block() 713 container_of((void *)tgt, struct Scsi_Host, hostdata[0]); sbp2_conditionally_block() 716 spin_lock_irqsave(&tgt->lock, flags); sbp2_conditionally_block() 717 if (!tgt->dont_block && !lu->blocked && sbp2_conditionally_block() 720 if (++tgt->blocked == 1) sbp2_conditionally_block() 723 spin_unlock_irqrestore(&tgt->lock, flags); sbp2_conditionally_block() 727 * Unblocks lu->tgt as soon as all its logical units can be unblocked. 729 * tgt->lock protected section. On the other hand, running it inside 734 struct sbp2_target *tgt = lu->tgt; sbp2_conditionally_unblock() local 735 struct fw_card *card = target_parent_device(tgt)->card; sbp2_conditionally_unblock() 737 container_of((void *)tgt, struct Scsi_Host, hostdata[0]); sbp2_conditionally_unblock() 740 spin_lock_irq(&tgt->lock); sbp2_conditionally_unblock() 743 unblock = --tgt->blocked == 0; sbp2_conditionally_unblock() 745 spin_unlock_irq(&tgt->lock); sbp2_conditionally_unblock() 752 * Prevents future blocking of tgt and unblocks it. 754 * tgt->lock protected section. On the other hand, running it inside 757 static void sbp2_unblock(struct sbp2_target *tgt) sbp2_unblock() argument 760 container_of((void *)tgt, struct Scsi_Host, hostdata[0]); sbp2_unblock() 762 spin_lock_irq(&tgt->lock); sbp2_unblock() 763 ++tgt->dont_block; sbp2_unblock() 764 spin_unlock_irq(&tgt->lock); sbp2_unblock() 798 struct fw_device *device = target_parent_device(lu->tgt); sbp2_set_busy_timeout() 802 lu->tgt->node_id, lu->generation, device->max_speed, sbp2_set_busy_timeout() 812 struct sbp2_target *tgt = lu->tgt; sbp2_login() local 813 struct fw_device *device = target_parent_device(tgt); sbp2_login() 837 dev_err(tgt_dev(tgt), "failed to login to LUN %04x\n", sbp2_login() 840 sbp2_unblock(lu->tgt); sbp2_login() 845 tgt->node_id = node_id; sbp2_login() 846 tgt->address_high = local_node_id << 16; sbp2_login() 855 dev_notice(tgt_dev(tgt), "logged in to LUN %04x (%d retries)\n", sbp2_login() 872 if (lu->tgt->workarounds & SBP2_WORKAROUND_DELAY_INQUIRY) sbp2_login() 875 shost = container_of((void *)tgt, struct Scsi_Host, hostdata[0]); sbp2_login() 900 sbp2_allow_block(tgt); sbp2_login() 922 struct sbp2_target *tgt = lu->tgt; sbp2_reconnect() local 923 struct fw_device *device = target_parent_device(tgt); sbp2_reconnect() 947 dev_err(tgt_dev(tgt), "failed to reconnect\n"); sbp2_reconnect() 956 tgt->node_id = node_id; sbp2_reconnect() 957 tgt->address_high = local_node_id << 16; sbp2_reconnect() 961 dev_notice(tgt_dev(tgt), "reconnected to LUN %04x (%d retries)\n", sbp2_reconnect() 976 static int sbp2_add_logical_unit(struct sbp2_target *tgt, int lun_entry) sbp2_add_logical_unit() argument 994 lu->tgt = tgt; sbp2_add_logical_unit() 1000 ++tgt->dont_block; sbp2_add_logical_unit() 1005 list_add_tail(&lu->link, &tgt->lu_list); sbp2_add_logical_unit() 1009 static void sbp2_get_unit_unique_id(struct sbp2_target *tgt, sbp2_get_unit_unique_id() argument 1013 tgt->guid = (u64)leaf[1] << 32 | leaf[2]; sbp2_get_unit_unique_id() 1016 static int sbp2_scan_logical_unit_dir(struct sbp2_target *tgt, sbp2_scan_logical_unit_dir() argument 1025 sbp2_add_logical_unit(tgt, value) < 0) sbp2_scan_logical_unit_dir() 1030 static int sbp2_scan_unit_dir(struct sbp2_target *tgt, const u32 *directory, sbp2_scan_unit_dir() argument 1041 tgt->management_agent_address = sbp2_scan_unit_dir() 1046 tgt->directory_id = value; sbp2_scan_unit_dir() 1059 tgt->mgt_orb_timeout = (value >> 8 & 0xff) * 500; sbp2_scan_unit_dir() 1063 if (sbp2_add_logical_unit(tgt, value) < 0) sbp2_scan_unit_dir() 1068 sbp2_get_unit_unique_id(tgt, ci.p - 1 + value); sbp2_scan_unit_dir() 1073 if (sbp2_scan_logical_unit_dir(tgt, ci.p - 1 + value) < 0) sbp2_scan_unit_dir() 1086 static void sbp2_clamp_management_orb_timeout(struct sbp2_target *tgt) sbp2_clamp_management_orb_timeout() argument 1088 unsigned int timeout = tgt->mgt_orb_timeout; sbp2_clamp_management_orb_timeout() 1091 dev_notice(tgt_dev(tgt), "%ds mgt_ORB_timeout limited to 40s\n", sbp2_clamp_management_orb_timeout() 1094 tgt->mgt_orb_timeout = clamp_val(timeout, 5000, 40000); sbp2_clamp_management_orb_timeout() 1097 static void sbp2_init_workarounds(struct sbp2_target *tgt, u32 model, sbp2_init_workarounds() argument 1104 dev_notice(tgt_dev(tgt), sbp2_init_workarounds() 1126 dev_notice(tgt_dev(tgt), "workarounds 0x%x " sbp2_init_workarounds() 1129 tgt->workarounds = w; sbp2_init_workarounds() 1138 struct sbp2_target *tgt; sbp2_probe() local 1151 shost = scsi_host_alloc(&scsi_driver_template, sizeof(*tgt)); sbp2_probe() 1155 tgt = (struct sbp2_target *)shost->hostdata; sbp2_probe() 1156 dev_set_drvdata(&unit->device, tgt); sbp2_probe() 1157 tgt->unit = unit; sbp2_probe() 1158 INIT_LIST_HEAD(&tgt->lu_list); sbp2_probe() 1159 spin_lock_init(&tgt->lock); sbp2_probe() 1160 tgt->guid = (u64)device->config_rom[3] << 32 | device->config_rom[4]; sbp2_probe() 1172 tgt->directory_id = ((unit->directory - device->config_rom) * 4 sbp2_probe() 1178 if (sbp2_scan_unit_dir(tgt, unit->directory, &model, sbp2_probe() 1182 sbp2_clamp_management_orb_timeout(tgt); sbp2_probe() 1183 sbp2_init_workarounds(tgt, model, firmware_revision); sbp2_probe() 1191 tgt->max_payload = min3(device->max_speed + 7, 10U, sbp2_probe() 1195 list_for_each_entry(lu, &tgt->lu_list, link) sbp2_probe() 1211 struct sbp2_target *tgt = dev_get_drvdata(&unit->device); sbp2_update() local 1218 * Iteration over tgt->lu_list is therefore safe here. sbp2_update() 1220 list_for_each_entry(lu, &tgt->lu_list, link) { sbp2_update() 1230 struct sbp2_target *tgt = dev_get_drvdata(&unit->device); sbp2_remove() local 1233 container_of((void *)tgt, struct Scsi_Host, hostdata[0]); sbp2_remove() 1237 sbp2_unblock(tgt); sbp2_remove() 1239 list_for_each_entry_safe(lu, next, &tgt->lu_list, link) { sbp2_remove() 1249 * tgt->node_id may be obsolete here if we failed sbp2_remove() 1356 struct fw_device *device = target_parent_device(base_orb->lu->tgt); complete_command_orb() 1417 cpu_to_be32(lu->tgt->address_high); sbp2_map_scatterlist() 1443 orb->request.data_descriptor.high = cpu_to_be32(lu->tgt->address_high); 1462 struct fw_device *device = target_parent_device(lu->tgt); sbp2_scsi_queuecommand() 1476 COMMAND_ORB_MAX_PAYLOAD(lu->tgt->max_payload) | sbp2_scsi_queuecommand() 1484 smp_rmb(); /* sbp2_map_scatterlist looks at tgt->address_high */ sbp2_scsi_queuecommand() 1500 sbp2_send_orb(&orb->base, lu, lu->tgt->node_id, generation, sbp2_scsi_queuecommand() 1524 if (lu->tgt->workarounds & SBP2_WORKAROUND_INQUIRY_36) sbp2_scsi_slave_alloc() 1543 lu->tgt->workarounds & SBP2_WORKAROUND_MODE_SENSE_8) sbp2_scsi_slave_configure() 1546 if (lu->tgt->workarounds & SBP2_WORKAROUND_FIX_CAPACITY) sbp2_scsi_slave_configure() 1549 if (lu->tgt->workarounds & SBP2_WORKAROUND_POWER_CONDITION) sbp2_scsi_slave_configure() 1552 if (lu->tgt->workarounds & SBP2_WORKAROUND_128K_MAX_TRANS) sbp2_scsi_slave_configure() 1592 (unsigned long long)lu->tgt->guid, sbp2_sysfs_ieee1394_id_show() 1593 lu->tgt->directory_id, lu->lun); sbp2_sysfs_ieee1394_id_show()
|
/linux-4.1.27/drivers/scsi/qla2xxx/ |
H A D | qla_target.c | 116 static void qlt_clear_tgt_db(struct qla_tgt *tgt); 140 /* ha->hardware_lock supposed to be held on entry (to protect tgt->sess_list) */ qlt_find_sess_by_port_name() 142 struct qla_tgt *tgt, qlt_find_sess_by_port_name() 147 list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) { qlt_find_sess_by_port_name() 184 BUG_ON(ha->tgt.tgt_vp_map == NULL); qlt_find_host_by_d_id() 185 vp_idx = ha->tgt.tgt_vp_map[d_id[2]].idx; qlt_find_host_by_d_id() 187 return ha->tgt.tgt_vp_map[vp_idx].vha; qlt_find_host_by_d_id() 201 BUG_ON(ha->tgt.tgt_vp_map == NULL); qlt_find_host_by_vp_idx() 203 return ha->tgt.tgt_vp_map[vp_idx].vha; qlt_find_host_by_vp_idx() 212 spin_lock_irqsave(&vha->hw->tgt.q_full_lock, flags); qlt_incr_num_pend_cmds() 214 vha->hw->tgt.num_pend_cmds++; qlt_incr_num_pend_cmds() 215 if (vha->hw->tgt.num_pend_cmds > vha->hw->qla_stats.stat_max_pend_cmds) qlt_incr_num_pend_cmds() 217 vha->hw->tgt.num_pend_cmds; qlt_incr_num_pend_cmds() 218 spin_unlock_irqrestore(&vha->hw->tgt.q_full_lock, flags); qlt_incr_num_pend_cmds() 224 spin_lock_irqsave(&vha->hw->tgt.q_full_lock, flags); qlt_decr_num_pend_cmds() 225 vha->hw->tgt.num_pend_cmds--; qlt_decr_num_pend_cmds() 226 spin_unlock_irqrestore(&vha->hw->tgt.q_full_lock, flags); qlt_decr_num_pend_cmds() 396 struct qla_tgt *tgt = sess->tgt; qlt_free_session_done() local 411 BUG_ON(!tgt); qlt_free_session_done() 436 ha->tgt.tgt_ops->free_session(sess); qlt_free_session_done() 471 * We need to protect against race, when tgt is freed before or qlt_free_session_done() 474 tgt->sess_count--; qlt_free_session_done() 475 if (tgt->sess_count == 0) qlt_free_session_done() 476 wake_up_all(&tgt->waitQ); qlt_free_session_done() 484 vha->hw->tgt.tgt_ops->clear_nacl_from_fcport_map(sess); qlt_unreg_sess() 512 if (!list_empty(&ha->tgt.qla_tgt->sess_list)) { qlt_reset() 513 sess = list_entry(ha->tgt.qla_tgt->sess_list.next, qlt_reset() 537 sess = ha->tgt.tgt_ops->find_sess_by_loop_id(vha, loop_id); qlt_reset() 563 struct qla_tgt *tgt = sess->tgt; qlt_schedule_sess_for_deletion() local 564 uint32_t dev_loss_tmo = tgt->ha->port_down_retry_count + 5; qlt_schedule_sess_for_deletion() 580 list_add(&sess->del_list_entry, &tgt->del_sess_list); qlt_schedule_sess_for_deletion() 583 list_add_tail(&sess->del_list_entry, &tgt->del_sess_list); qlt_schedule_sess_for_deletion() 597 mod_delayed_work(system_wq, &tgt->sess_del_work, 0); qlt_schedule_sess_for_deletion() 599 schedule_delayed_work(&tgt->sess_del_work, qlt_schedule_sess_for_deletion() 604 static void qlt_clear_tgt_db(struct qla_tgt *tgt) qlt_clear_tgt_db() argument 608 list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) qlt_clear_tgt_db() 611 /* At this point tgt could be already dead */ qlt_clear_tgt_db() 674 struct qla_tgt *tgt = container_of(work, struct qla_tgt, qlt_del_sess_work_fn() local 676 struct scsi_qla_host *vha = tgt->vha; qlt_del_sess_work_fn() 682 while (!list_empty(&tgt->del_sess_list)) { qlt_del_sess_work_fn() 683 sess = list_entry(tgt->del_sess_list.next, typeof(*sess), qlt_del_sess_work_fn() 694 ha->tgt.tgt_ops->shutdown_sess(sess); qlt_del_sess_work_fn() 695 ha->tgt.tgt_ops->put_sess(sess); qlt_del_sess_work_fn() 697 schedule_delayed_work(&tgt->sess_del_work, qlt_del_sess_work_fn() 744 ha->tgt.tgt_ops->update_sess(sess, fcport->d_id, fcport->loop_id, qlt_create_sess() 768 sess->tgt = vha->vha_tgt.qla_tgt; qlt_create_sess() 783 "Adding sess %p to tgt %p via ->check_initiator_node_acl()\n", qlt_create_sess() 795 if (ha->tgt.tgt_ops->check_initiator_node_acl(vha, qlt_create_sess() 832 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_fc_port_added() local 836 if (!vha->hw->tgt.tgt_ops) qlt_fc_port_added() 839 if (!tgt || (fcport->port_type != FCT_INITIATOR)) qlt_fc_port_added() 846 if (tgt->tgt_stop) { qlt_fc_port_added() 850 sess = qlt_find_sess_by_port_name(tgt, fcport->port_name); qlt_fc_port_added() 878 ha->tgt.tgt_ops->update_sess(sess, fcport->d_id, fcport->loop_id, qlt_fc_port_added() 889 ha->tgt.tgt_ops->put_sess(sess); qlt_fc_port_added() 900 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_fc_port_deleted() local 903 if (!vha->hw->tgt.tgt_ops) qlt_fc_port_deleted() 906 if (!tgt) qlt_fc_port_deleted() 909 if (tgt->tgt_stop) { qlt_fc_port_deleted() 912 sess = qlt_find_sess_by_port_name(tgt, fcport->port_name); qlt_fc_port_deleted() 932 static inline int test_tgt_sess_count(struct qla_tgt *tgt) test_tgt_sess_count() argument 934 struct qla_hw_data *ha = tgt->ha; test_tgt_sess_count() 938 * We need to protect against race, when tgt is freed before or test_tgt_sess_count() 942 ql_dbg(ql_dbg_tgt, tgt->vha, 0xe002, test_tgt_sess_count() 943 "tgt %p, empty(sess_list)=%d sess_count=%d\n", test_tgt_sess_count() 944 tgt, list_empty(&tgt->sess_list), tgt->sess_count); test_tgt_sess_count() 945 res = (tgt->sess_count == 0); test_tgt_sess_count() 952 int qlt_stop_phase1(struct qla_tgt *tgt) qlt_stop_phase1() argument 954 struct scsi_qla_host *vha = tgt->vha; qlt_stop_phase1() 955 struct qla_hw_data *ha = tgt->ha; qlt_stop_phase1() 973 if (tgt->tgt_stop || tgt->tgt_stopped) { qlt_stop_phase1() 975 "Already in tgt->tgt_stop or tgt_stopped state\n"); qlt_stop_phase1() 988 tgt->tgt_stop = 1; qlt_stop_phase1() 989 qlt_clear_tgt_db(tgt); qlt_stop_phase1() 994 flush_delayed_work(&tgt->sess_del_work); qlt_stop_phase1() 997 "Waiting for sess works (tgt %p)", tgt); qlt_stop_phase1() 998 spin_lock_irqsave(&tgt->sess_work_lock, flags); qlt_stop_phase1() 999 while (!list_empty(&tgt->sess_works_list)) { qlt_stop_phase1() 1000 spin_unlock_irqrestore(&tgt->sess_work_lock, flags); qlt_stop_phase1() 1002 spin_lock_irqsave(&tgt->sess_work_lock, flags); qlt_stop_phase1() 1004 spin_unlock_irqrestore(&tgt->sess_work_lock, flags); qlt_stop_phase1() 1007 "Waiting for tgt %p: list_empty(sess_list)=%d " qlt_stop_phase1() 1008 "sess_count=%d\n", tgt, list_empty(&tgt->sess_list), qlt_stop_phase1() 1009 tgt->sess_count); qlt_stop_phase1() 1011 wait_event(tgt->waitQ, test_tgt_sess_count(tgt)); qlt_stop_phase1() 1018 wait_event(tgt->waitQ, test_tgt_sess_count(tgt)); qlt_stop_phase1() 1024 void qlt_stop_phase2(struct qla_tgt *tgt) qlt_stop_phase2() argument 1026 struct qla_hw_data *ha = tgt->ha; qlt_stop_phase2() 1030 if (tgt->tgt_stopped) { qlt_stop_phase2() 1032 "Already in tgt->tgt_stopped state\n"); qlt_stop_phase2() 1038 "Waiting for %d IRQ commands to complete (tgt %p)", qlt_stop_phase2() 1039 tgt->irq_cmd_count, tgt); qlt_stop_phase2() 1043 while (tgt->irq_cmd_count != 0) { qlt_stop_phase2() 1048 tgt->tgt_stop = 0; qlt_stop_phase2() 1049 tgt->tgt_stopped = 1; qlt_stop_phase2() 1053 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf00c, "Stop of tgt %p finished", qlt_stop_phase2() 1054 tgt); qlt_stop_phase2() 1059 static void qlt_release(struct qla_tgt *tgt) qlt_release() argument 1061 scsi_qla_host_t *vha = tgt->vha; qlt_release() 1063 if ((vha->vha_tgt.qla_tgt != NULL) && !tgt->tgt_stopped) qlt_release() 1064 qlt_stop_phase2(tgt); qlt_release() 1069 "Release of tgt %p finished\n", tgt); qlt_release() 1071 kfree(tgt); qlt_release() 1075 static int qlt_sched_sess_work(struct qla_tgt *tgt, int type, qlt_sched_sess_work() argument 1083 ql_dbg(ql_dbg_tgt_mgt, tgt->vha, 0xf050, qlt_sched_sess_work() 1089 ql_dbg(ql_dbg_tgt_mgt, tgt->vha, 0xf00e, qlt_sched_sess_work() 1091 " to find session for param %p (size %d, tgt %p)\n", qlt_sched_sess_work() 1092 type, prm, param, param_size, tgt); qlt_sched_sess_work() 1097 spin_lock_irqsave(&tgt->sess_work_lock, flags); qlt_sched_sess_work() 1098 list_add_tail(&prm->sess_works_list_entry, &tgt->sess_works_list); qlt_sched_sess_work() 1099 spin_unlock_irqrestore(&tgt->sess_work_lock, flags); qlt_sched_sess_work() 1101 schedule_work(&tgt->sess_work); qlt_sched_sess_work() 1415 rc = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, TMR_ABORT_TASK, __qlt_24xx_handle_abts() 1466 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, s_id); qlt_24xx_handle_abts() 1574 ha->tgt.tgt_ops->free_mcmd(mcmd); qlt_xmit_tm_rsp() 1598 ha->tgt.tgt_ops->free_mcmd(mcmd); qlt_xmit_tm_rsp() 1611 prm->seg_cnt = pci_map_sg(prm->tgt->ha->pdev, cmd->sg, qlt_pci_map_calc_cnt() 1623 if (prm->seg_cnt > prm->tgt->datasegs_per_cmd) qlt_pci_map_calc_cnt() 1625 prm->tgt->datasegs_per_cmd, qlt_pci_map_calc_cnt() 1626 prm->tgt->datasegs_per_cont); qlt_pci_map_calc_cnt() 1638 prm->prot_seg_cnt = pci_map_sg(prm->tgt->ha->pdev, qlt_pci_map_calc_cnt() 1735 h = ha->tgt.current_handle; qlt_make_handle() 1741 if (h == ha->tgt.current_handle) { qlt_make_handle() 1750 (ha->tgt.cmds[h-1] != NULL)); qlt_make_handle() 1753 ha->tgt.current_handle = h; qlt_make_handle() 1785 ha->tgt.cmds[h-1] = prm->cmd; qlt_24xx_build_ctio_pkt() 1811 int enable_64bit_addressing = prm->tgt->tgt_enable_64bit_addr; qlt_load_cont_data_segments() 1843 cnt < prm->tgt->datasegs_per_cont && prm->seg_cnt; qlt_load_cont_data_segments() 1870 int enable_64bit_addressing = prm->tgt->tgt_enable_64bit_addr; qlt_load_data_segments() 1893 (cnt < prm->tgt->datasegs_per_cmd) && prm->seg_cnt; qlt_load_data_segments() 1922 struct qla_tgt *tgt = cmd->tgt; qlt_pre_xmit_response() local 1923 struct scsi_qla_host *vha = tgt->vha; qlt_pre_xmit_response() 1928 prm->tgt = tgt; qlt_pre_xmit_response() 1987 if (ha->tgt.enable_class_2) qlt_need_explicit_conf() 1993 return ha->tgt.enable_explicit_conf && qlt_need_explicit_conf() 2093 if (qlt_need_explicit_conf(prm->tgt->ha, prm->cmd, 0)) { qlt_24xx_init_ctio_to_isp() 2103 if (qlt_need_explicit_conf(prm->tgt->ha, prm->cmd, 1)) { qlt_24xx_init_ctio_to_isp() 2133 "lost", prm->tgt->ha->vp_idx, qlt_24xx_init_ctio_to_isp() 2367 ha->tgt.cmds[h-1] = prm->cmd; qlt_build_ctio_crc2_pkt() 2639 struct qla_tgt *tgt = cmd->tgt; qlt_rdy_to_xfer() local 2646 prm.tgt = tgt; qlt_rdy_to_xfer() 3023 vha->hw->tgt.tgt_ops->free_cmd(cmd); qlt_send_term_exchange() 3037 vha->hw->tgt.leak_exchg_thresh_hold = qlt_init_term_exchange() 3041 if (!list_empty(&vha->hw->tgt.q_full_list)) { qlt_init_term_exchange() 3043 list_splice_init(&vha->hw->tgt.q_full_list, &free_list); qlt_init_term_exchange() 3051 vha->hw->tgt.num_qfull_cmds_alloc--; qlt_init_term_exchange() 3054 vha->hw->tgt.num_qfull_cmds_dropped = 0; qlt_init_term_exchange() 3061 total_leaked = vha->hw->tgt.num_qfull_cmds_dropped; qlt_chk_exch_leak_thresh_hold() 3063 if (vha->hw->tgt.leak_exchg_thresh_hold && qlt_chk_exch_leak_thresh_hold() 3064 (total_leaked > vha->hw->tgt.leak_exchg_thresh_hold)) { qlt_chk_exch_leak_thresh_hold() 3081 struct qla_tgt *tgt = cmd->tgt; qlt_abort_cmd() local 3082 struct scsi_qla_host *vha = tgt->vha; qlt_abort_cmd() 3130 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_prepare_srr_ctio() local 3133 tgt->ctio_srr_id++; qlt_prepare_srr_ctio() 3150 spin_lock(&tgt->srr_lock); qlt_prepare_srr_ctio() 3151 sc->srr_id = tgt->ctio_srr_id; qlt_prepare_srr_ctio() 3153 &tgt->srr_ctio_list); qlt_prepare_srr_ctio() 3156 if (tgt->imm_srr_id == tgt->ctio_srr_id) { qlt_prepare_srr_ctio() 3158 list_for_each_entry(imm, &tgt->srr_imm_list, qlt_prepare_srr_ctio() 3168 schedule_work(&tgt->srr_work); qlt_prepare_srr_ctio() 3175 tgt->ctio_srr_id, sc); qlt_prepare_srr_ctio() 3177 spin_unlock(&tgt->srr_lock); qlt_prepare_srr_ctio() 3183 spin_unlock(&tgt->srr_lock); qlt_prepare_srr_ctio() 3190 spin_lock(&tgt->srr_lock); qlt_prepare_srr_ctio() 3191 list_for_each_entry_safe(imm, ti, &tgt->srr_imm_list, qlt_prepare_srr_ctio() 3193 if (imm->srr_id == tgt->ctio_srr_id) { qlt_prepare_srr_ctio() 3201 spin_unlock(&tgt->srr_lock); qlt_prepare_srr_ctio() 3237 if (ha->tgt.cmds[handle] != NULL) { qlt_get_cmd() 3238 struct qla_tgt_cmd *cmd = ha->tgt.cmds[handle]; qlt_get_cmd() 3239 ha->tgt.cmds[handle] = NULL; qlt_get_cmd() 3308 ha->tgt.tgt_ops->handle_data(cmd); qlt_abort_cmd_on_host_reset() 3321 ha->tgt.tgt_ops->free_cmd(cmd); qlt_abort_cmd_on_host_reset() 3331 struct qla_tgt *tgt = base_vha->vha_tgt.qla_tgt; qlt_host_reset_handler() local 3334 if (!base_vha->hw->tgt.tgt_ops) qlt_host_reset_handler() 3337 if (!tgt || qla_ini_mode_enabled(base_vha)) { qlt_host_reset_handler() 3352 /* ha->tgt.cmds entry is cleared by qlt_get_cmd. */ qlt_host_reset_handler() 3446 ha->tgt.tgt_ops->handle_dif_err(cmd); qlt_do_ctio_completion() 3493 ha->tgt.tgt_ops->handle_data(cmd); qlt_do_ctio_completion() 3511 ha->tgt.tgt_ops->free_cmd(cmd); qlt_do_ctio_completion() 3555 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; __qlt_do_work() local 3565 if (tgt->tgt_stop) __qlt_do_work() 3597 ret = ha->tgt.tgt_ops->handle_cmd(vha, cmd, cdb, data_length, __qlt_do_work() 3605 ha->tgt.tgt_ops->put_sess(sess); __qlt_do_work() 3621 ha->tgt.tgt_ops->put_sess(sess); __qlt_do_work() 3655 cmd->tgt = vha->vha_tgt.qla_tgt; qlt_get_tag() 3723 ha->tgt.tgt_ops->put_sess(sess); qlt_create_sess_from_atio() 3729 * __qlt_do_work() will call ha->tgt.tgt_ops->put_sess() to release qlt_create_sess_from_atio() 3749 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_handle_cmd_for_atio() local 3753 if (unlikely(tgt->tgt_stop)) { qlt_handle_cmd_for_atio() 3755 "New command while device %p is shutting down\n", tgt); qlt_handle_cmd_for_atio() 3759 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, atio->u.isp24.fcp_hdr.s_id); qlt_handle_cmd_for_atio() 3796 ha->tgt.tgt_ops->put_sess(sess); qlt_handle_cmd_for_atio() 3911 res = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, tmr_func, 0); qlt_issue_task_mgmt() 3914 "qla_target(%d): tgt.tgt_ops->handle_tmr() failed: %d\n", qlt_issue_task_mgmt() 3928 struct qla_tgt *tgt; qlt_handle_task_mgmt() local 3933 tgt = vha->vha_tgt.qla_tgt; qlt_handle_task_mgmt() 3938 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, qlt_handle_task_mgmt() 3946 return qlt_sched_sess_work(tgt, QLA_TGT_SESS_WORK_TM, iocb, qlt_handle_task_mgmt() 3983 rc = ha->tgt.tgt_ops->handle_tmr(mcmd, unpacked_lun, TMR_ABORT_TASK, __qlt_abort_task() 4006 sess = ha->tgt.tgt_ops->find_sess_by_loop_id(vha, loop_id); qlt_abort_task() 4048 * ha->hardware_lock supposed to be held on entry (to protect tgt->sess_list) 4055 qlt_find_sess_invalidate_other(struct qla_tgt *tgt, uint64_t wwn, qlt_find_sess_invalidate_other() argument 4061 list_for_each_entry(other_sess, &tgt->sess_list, sess_list_entry) { qlt_find_sess_invalidate_other() 4074 ql_dbg(ql_dbg_tgt_tmr, tgt->vha, 0x1000c, qlt_find_sess_invalidate_other() 4099 ql_dbg(ql_dbg_tgt_tmr, tgt->vha, 0x1000d, qlt_find_sess_invalidate_other() 4150 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_24xx_handle_els() local 4182 sess = qlt_find_sess_invalidate_other(tgt, wwn, qlt_24xx_handle_els() 4244 sess = qlt_find_sess_invalidate_other(tgt, wwn, port_id, qlt_24xx_handle_els() 4299 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_24xx_handle_els() local 4300 if (tgt->link_reinit_iocb_pending) { qlt_24xx_handle_els() 4301 qlt_send_notify_ack(vha, &tgt->link_reinit_iocb, qlt_24xx_handle_els() 4303 tgt->link_reinit_iocb_pending = 0; qlt_24xx_handle_els() 4598 struct qla_tgt *tgt = container_of(work, struct qla_tgt, srr_work); qlt_handle_srr_work() local 4599 struct scsi_qla_host *vha = tgt->vha; qlt_handle_srr_work() 4603 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf029, "Entering SRR work (tgt %p)\n", qlt_handle_srr_work() 4604 tgt); qlt_handle_srr_work() 4607 spin_lock_irqsave(&tgt->srr_lock, flags); qlt_handle_srr_work() 4608 list_for_each_entry(sctio, &tgt->srr_ctio_list, srr_list_entry) { qlt_handle_srr_work() 4614 list_for_each_entry_safe(i, ti, &tgt->srr_imm_list, qlt_handle_srr_work() 4624 qlt_reject_free_srr_imm(tgt->vha, i, 0); qlt_handle_srr_work() 4642 spin_unlock_irqrestore(&tgt->srr_lock, flags); qlt_handle_srr_work() 4673 spin_unlock_irqrestore(&tgt->srr_lock, flags); qlt_handle_srr_work() 4681 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_prepare_srr_imm() local 4684 tgt->imm_srr_id++; qlt_prepare_srr_imm() 4694 spin_lock(&tgt->srr_lock); qlt_prepare_srr_imm() 4695 imm->srr_id = tgt->imm_srr_id; qlt_prepare_srr_imm() 4697 &tgt->srr_imm_list); qlt_prepare_srr_imm() 4701 if (tgt->imm_srr_id == tgt->ctio_srr_id) { qlt_prepare_srr_imm() 4703 list_for_each_entry(sctio, &tgt->srr_ctio_list, qlt_prepare_srr_imm() 4713 schedule_work(&tgt->srr_work); qlt_prepare_srr_imm() 4719 "SRR %p\n", vha->vp_idx, tgt->ctio_srr_id, qlt_prepare_srr_imm() 4725 spin_unlock(&tgt->srr_lock); qlt_prepare_srr_imm() 4729 spin_unlock(&tgt->srr_lock); qlt_prepare_srr_imm() 4738 spin_lock(&tgt->srr_lock); qlt_prepare_srr_imm() 4739 list_for_each_entry_safe(sctio, ts, &tgt->srr_ctio_list, qlt_prepare_srr_imm() 4741 if (sctio->srr_id == tgt->imm_srr_id) { qlt_prepare_srr_imm() 4751 spin_unlock(&tgt->srr_lock); qlt_prepare_srr_imm() 4791 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_handle_imm_notify() local 4797 if (tgt->link_reinit_iocb_pending) { qlt_handle_imm_notify() 4798 qlt_send_notify_ack(vha, &tgt->link_reinit_iocb, qlt_handle_imm_notify() 4801 memcpy(&tgt->link_reinit_iocb, iocb, sizeof(*iocb)); qlt_handle_imm_notify() 4802 tgt->link_reinit_iocb_pending = 1; qlt_handle_imm_notify() 4914 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, __qlt_send_busy() 4967 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_alloc_qfull_cmd() local 4974 if (unlikely(tgt->tgt_stop)) { qlt_alloc_qfull_cmd() 4976 "New command while device %p is shutting down\n", tgt); qlt_alloc_qfull_cmd() 4980 if ((vha->hw->tgt.num_qfull_cmds_alloc + 1) > MAX_QFULL_CMDS_ALLOC) { qlt_alloc_qfull_cmd() 4981 vha->hw->tgt.num_qfull_cmds_dropped++; qlt_alloc_qfull_cmd() 4982 if (vha->hw->tgt.num_qfull_cmds_dropped > qlt_alloc_qfull_cmd() 4985 vha->hw->tgt.num_qfull_cmds_dropped; qlt_alloc_qfull_cmd() 4990 vha->hw->tgt.num_qfull_cmds_dropped); qlt_alloc_qfull_cmd() 4996 sess = ha->tgt.tgt_ops->find_sess_by_s_id qlt_alloc_qfull_cmd() 5013 vha->hw->tgt.num_qfull_cmds_dropped++; qlt_alloc_qfull_cmd() 5014 if (vha->hw->tgt.num_qfull_cmds_dropped > qlt_alloc_qfull_cmd() 5017 vha->hw->tgt.num_qfull_cmds_dropped; qlt_alloc_qfull_cmd() 5029 cmd->tgt = vha->vha_tgt.qla_tgt; qlt_alloc_qfull_cmd() 5041 list_add_tail(&cmd->cmd_list, &vha->hw->tgt.q_full_list); qlt_alloc_qfull_cmd() 5043 vha->hw->tgt.num_qfull_cmds_alloc++; qlt_alloc_qfull_cmd() 5044 if (vha->hw->tgt.num_qfull_cmds_alloc > qlt_alloc_qfull_cmd() 5047 vha->hw->tgt.num_qfull_cmds_alloc; qlt_alloc_qfull_cmd() 5059 if (list_empty(&ha->tgt.q_full_list)) qlt_free_qfull_cmds() 5066 if (list_empty(&ha->tgt.q_full_list)) { qlt_free_qfull_cmds() 5071 list_for_each_entry_safe(cmd, tcmd, &ha->tgt.q_full_list, cmd_list) { qlt_free_qfull_cmds() 5098 vha->hw->tgt.num_qfull_cmds_alloc--; qlt_free_qfull_cmds() 5132 if (ha->tgt.num_pend_cmds < Q_FULL_THRESH_HOLD(ha)) qlt_chk_qfull_thresh_hold() 5146 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_24xx_atio_pkt() local 5149 if (unlikely(tgt == NULL)) { qlt_24xx_atio_pkt() 5151 "ATIO pkt, but no tgt (ha %p)", ha); qlt_24xx_atio_pkt() 5159 tgt->irq_cmd_count++; qlt_24xx_atio_pkt() 5178 tgt->irq_cmd_count--; qlt_24xx_atio_pkt() 5193 if (tgt->tgt_stop) { qlt_24xx_atio_pkt() 5231 tgt->irq_cmd_count--; qlt_24xx_atio_pkt() 5239 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_response_pkt() local 5241 if (unlikely(tgt == NULL)) { qlt_response_pkt() 5244 "tgt (ha %p)\n", vha->vp_idx, pkt->entry_type, ha); qlt_response_pkt() 5253 tgt->irq_cmd_count++; qlt_response_pkt() 5281 tgt->irq_cmd_count--; qlt_response_pkt() 5294 if (tgt->tgt_stop) { qlt_response_pkt() 5337 if (tgt->notify_ack_expected > 0) { qlt_response_pkt() 5343 tgt->notify_ack_expected--; qlt_response_pkt() 5365 if (tgt->abts_resp_expected > 0) { qlt_response_pkt() 5371 tgt->abts_resp_expected--; qlt_response_pkt() 5415 tgt->irq_cmd_count--; qlt_response_pkt() 5425 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_async_event() local 5428 if (!ha->tgt.tgt_ops) qlt_async_event() 5431 if (unlikely(tgt == NULL)) { qlt_async_event() 5433 "ASYNC EVENT %#x, but no tgt (ha %p)\n", code, ha); qlt_async_event() 5445 tgt->irq_cmd_count++; qlt_async_event() 5467 if (tgt->link_reinit_iocb_pending) { qlt_async_event() 5468 qlt_send_notify_ack(vha, (void *)&tgt->link_reinit_iocb, qlt_async_event() 5470 tgt->link_reinit_iocb_pending = 0; qlt_async_event() 5507 tgt->irq_cmd_count--; qlt_async_event() 5593 static void qlt_abort_work(struct qla_tgt *tgt, qlt_abort_work() argument 5596 struct scsi_qla_host *vha = tgt->vha; qlt_abort_work() 5606 if (tgt->tgt_stop) qlt_abort_work() 5613 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, qlt_abort_work() 5635 if (tgt->tgt_stop) qlt_abort_work() 5642 ha->tgt.tgt_ops->put_sess(sess); qlt_abort_work() 5649 ha->tgt.tgt_ops->put_sess(sess); qlt_abort_work() 5653 static void qlt_tmr_work(struct qla_tgt *tgt, qlt_tmr_work() argument 5657 struct scsi_qla_host *vha = tgt->vha; qlt_tmr_work() 5669 if (tgt->tgt_stop) qlt_tmr_work() 5673 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, s_id); qlt_tmr_work() 5704 ha->tgt.tgt_ops->put_sess(sess); qlt_tmr_work() 5711 ha->tgt.tgt_ops->put_sess(sess); qlt_tmr_work() 5717 struct qla_tgt *tgt = container_of(work, struct qla_tgt, sess_work); qlt_sess_work_fn() local 5718 struct scsi_qla_host *vha = tgt->vha; qlt_sess_work_fn() 5721 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf000, "Sess work (tgt %p)", tgt); qlt_sess_work_fn() 5723 spin_lock_irqsave(&tgt->sess_work_lock, flags); qlt_sess_work_fn() 5724 while (!list_empty(&tgt->sess_works_list)) { qlt_sess_work_fn() 5726 tgt->sess_works_list.next, typeof(*prm), qlt_sess_work_fn() 5735 spin_unlock_irqrestore(&tgt->sess_work_lock, flags); qlt_sess_work_fn() 5739 qlt_abort_work(tgt, prm); qlt_sess_work_fn() 5742 qlt_tmr_work(tgt, prm); qlt_sess_work_fn() 5749 spin_lock_irqsave(&tgt->sess_work_lock, flags); qlt_sess_work_fn() 5753 spin_unlock_irqrestore(&tgt->sess_work_lock, flags); qlt_sess_work_fn() 5759 struct qla_tgt *tgt; qlt_add_target() local 5775 tgt = kzalloc(sizeof(struct qla_tgt), GFP_KERNEL); qlt_add_target() 5776 if (!tgt) { qlt_add_target() 5785 tgt->ha = ha; qlt_add_target() 5786 tgt->vha = base_vha; qlt_add_target() 5787 init_waitqueue_head(&tgt->waitQ); qlt_add_target() 5788 INIT_LIST_HEAD(&tgt->sess_list); qlt_add_target() 5789 INIT_LIST_HEAD(&tgt->del_sess_list); qlt_add_target() 5790 INIT_DELAYED_WORK(&tgt->sess_del_work, qlt_add_target() 5792 spin_lock_init(&tgt->sess_work_lock); qlt_add_target() 5793 INIT_WORK(&tgt->sess_work, qlt_sess_work_fn); qlt_add_target() 5794 INIT_LIST_HEAD(&tgt->sess_works_list); qlt_add_target() 5795 spin_lock_init(&tgt->srr_lock); qlt_add_target() 5796 INIT_LIST_HEAD(&tgt->srr_ctio_list); qlt_add_target() 5797 INIT_LIST_HEAD(&tgt->srr_imm_list); qlt_add_target() 5798 INIT_WORK(&tgt->srr_work, qlt_handle_srr_work); qlt_add_target() 5799 atomic_set(&tgt->tgt_global_resets_count, 0); qlt_add_target() 5801 base_vha->vha_tgt.qla_tgt = tgt; qlt_add_target() 5806 tgt->tgt_enable_64bit_addr = 1; qlt_add_target() 5808 tgt->sg_tablesize = QLA_TGT_MAX_SG_24XX(base_vha->req->length - 3); qlt_add_target() 5809 tgt->datasegs_per_cmd = QLA_TGT_DATASEGS_PER_CMD_24XX; qlt_add_target() 5810 tgt->datasegs_per_cont = QLA_TGT_DATASEGS_PER_CONT_24XX; qlt_add_target() 5816 list_add_tail(&tgt->tgt_list_entry, &qla_tgt_glist); qlt_add_target() 5880 struct qla_tgt *tgt; qlt_lport_register() local 5889 list_for_each_entry(tgt, &qla_tgt_glist, tgt_list_entry) { qlt_lport_register() 5890 vha = tgt->vha; qlt_lport_register() 5907 if (tgt->tgt_stop) { qlt_lport_register() 5953 ha->tgt.tgt_ops = NULL; qlt_lport_deregister() 5978 if (ha->tgt.ini_mode_force_reverse) qlt_set_mode() 6001 if (ha->tgt.ini_mode_force_reverse) qlt_clear_mode() 6014 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_enable_vha() local 6018 if (!tgt) { qlt_enable_vha() 6027 tgt->tgt_stopped = 0; qlt_enable_vha() 6050 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; qlt_disable_vha() local 6053 if (!tgt) { qlt_disable_vha() 6094 ha->tgt.atio_q_length = ATIO_ENTRY_CNT_24XX; qlt_vport_create() 6129 struct atio_from_isp *pkt = (struct atio_from_isp *)ha->tgt.atio_ring; qlt_init_atio_q_entries() 6134 for (cnt = 0; cnt < ha->tgt.atio_q_length; cnt++) { qlt_init_atio_q_entries() 6155 while (ha->tgt.atio_ring_ptr->signature != ATIO_PROCESSED) { qlt_24xx_process_atio_queue() 6156 pkt = (struct atio_from_isp *)ha->tgt.atio_ring_ptr; qlt_24xx_process_atio_queue() 6162 ha->tgt.atio_ring_index++; qlt_24xx_process_atio_queue() 6163 if (ha->tgt.atio_ring_index == ha->tgt.atio_q_length) { qlt_24xx_process_atio_queue() 6164 ha->tgt.atio_ring_index = 0; qlt_24xx_process_atio_queue() 6165 ha->tgt.atio_ring_ptr = ha->tgt.atio_ring; qlt_24xx_process_atio_queue() 6167 ha->tgt.atio_ring_ptr++; qlt_24xx_process_atio_queue() 6170 pkt = (struct atio_from_isp *)ha->tgt.atio_ring_ptr; qlt_24xx_process_atio_queue() 6176 WRT_REG_DWORD(ISP_ATIO_Q_OUT(vha), ha->tgt.atio_ring_index); qlt_24xx_process_atio_queue() 6207 if (!ha->tgt.saved_set) { qlt_24xx_config_nvram_stage1() 6209 ha->tgt.saved_exchange_count = nv->exchange_count; qlt_24xx_config_nvram_stage1() 6210 ha->tgt.saved_firmware_options_1 = qlt_24xx_config_nvram_stage1() 6212 ha->tgt.saved_firmware_options_2 = qlt_24xx_config_nvram_stage1() 6214 ha->tgt.saved_firmware_options_3 = qlt_24xx_config_nvram_stage1() 6216 ha->tgt.saved_set = 1; qlt_24xx_config_nvram_stage1() 6244 if (ha->tgt.saved_set) { qlt_24xx_config_nvram_stage1() 6245 nv->exchange_count = ha->tgt.saved_exchange_count; qlt_24xx_config_nvram_stage1() 6247 ha->tgt.saved_firmware_options_1; qlt_24xx_config_nvram_stage1() 6249 ha->tgt.saved_firmware_options_2; qlt_24xx_config_nvram_stage1() 6251 ha->tgt.saved_firmware_options_3; qlt_24xx_config_nvram_stage1() 6259 if (ha->tgt.enable_class_2) { qlt_24xx_config_nvram_stage1() 6279 if (ha->tgt.node_name_set) { qlt_24xx_config_nvram_stage2() 6280 memcpy(icb->node_name, ha->tgt.tgt_node_name, WWN_SIZE); qlt_24xx_config_nvram_stage2() 6294 if (!ha->tgt.saved_set) { qlt_81xx_config_nvram_stage1() 6296 ha->tgt.saved_exchange_count = nv->exchange_count; qlt_81xx_config_nvram_stage1() 6297 ha->tgt.saved_firmware_options_1 = qlt_81xx_config_nvram_stage1() 6299 ha->tgt.saved_firmware_options_2 = qlt_81xx_config_nvram_stage1() 6301 ha->tgt.saved_firmware_options_3 = qlt_81xx_config_nvram_stage1() 6303 ha->tgt.saved_set = 1; qlt_81xx_config_nvram_stage1() 6332 if (ha->tgt.saved_set) { qlt_81xx_config_nvram_stage1() 6333 nv->exchange_count = ha->tgt.saved_exchange_count; qlt_81xx_config_nvram_stage1() 6335 ha->tgt.saved_firmware_options_1; qlt_81xx_config_nvram_stage1() 6337 ha->tgt.saved_firmware_options_2; qlt_81xx_config_nvram_stage1() 6339 ha->tgt.saved_firmware_options_3; qlt_81xx_config_nvram_stage1() 6347 if (ha->tgt.enable_class_2) { qlt_81xx_config_nvram_stage1() 6370 if (ha->tgt.node_name_set) { qlt_81xx_config_nvram_stage2() 6371 memcpy(icb->node_name, ha->tgt.tgt_node_name, WWN_SIZE); qlt_81xx_config_nvram_stage2() 6459 ha->tgt.tgt_vp_map = kzalloc(sizeof(struct qla_tgt_vp_map) * qlt_mem_alloc() 6461 if (!ha->tgt.tgt_vp_map) qlt_mem_alloc() 6464 ha->tgt.atio_ring = dma_alloc_coherent(&ha->pdev->dev, qlt_mem_alloc() 6465 (ha->tgt.atio_q_length + 1) * sizeof(struct atio_from_isp), qlt_mem_alloc() 6466 &ha->tgt.atio_dma, GFP_KERNEL); qlt_mem_alloc() 6467 if (!ha->tgt.atio_ring) { qlt_mem_alloc() 6468 kfree(ha->tgt.tgt_vp_map); qlt_mem_alloc() 6480 if (ha->tgt.atio_ring) { qlt_mem_free() 6481 dma_free_coherent(&ha->pdev->dev, (ha->tgt.atio_q_length + 1) * qlt_mem_free() 6482 sizeof(struct atio_from_isp), ha->tgt.atio_ring, qlt_mem_free() 6483 ha->tgt.atio_dma); qlt_mem_free() 6485 kfree(ha->tgt.tgt_vp_map); qlt_mem_free() 6497 vha->hw->tgt.tgt_vp_map[vha->vp_idx].vha = vha; qlt_update_vp_map() 6500 vha->hw->tgt.tgt_vp_map[vha->d_id.b.al_pa].idx = vha->vp_idx; qlt_update_vp_map() 6503 vha->hw->tgt.tgt_vp_map[vha->vp_idx].vha = NULL; qlt_update_vp_map() 6506 vha->hw->tgt.tgt_vp_map[vha->d_id.b.al_pa].idx = 0; qlt_update_vp_map() 141 qlt_find_sess_by_port_name( struct qla_tgt *tgt, const uint8_t *port_name) qlt_find_sess_by_port_name() argument
|
H A D | qla_target.h | 60 * multi-complete should come to the tgt driver or be handled there by qla2xxx 919 struct qla_tgt *tgt; member in struct:qla_tgt_sess 963 struct qla_tgt *tgt; /* to save extra sess dereferences */ member in struct:qla_tgt_cmd 1031 struct qla_tgt *tgt; member in struct:qla_tgt_prm
|
H A D | tcm_qla2xxx.c | 1527 struct qla_tgt *tgt = sess->tgt; tcm_qla2xxx_free_session() local 1528 struct qla_hw_data *ha = tgt->ha; tcm_qla2xxx_free_session() 1644 struct qla_tgt *tgt = sess->tgt; tcm_qla2xxx_update_sess() local 1645 struct qla_hw_data *ha = tgt->ha; tcm_qla2xxx_update_sess() 1769 ha->tgt.tgt_ops = &tcm_qla2xxx_template; tcm_qla2xxx_lport_register_cb()
|
H A D | qla_os.c | 2334 ha->tgt.enable_class_2 = ql2xenableclass2; qla2x00_probe_one() 2335 INIT_LIST_HEAD(&ha->tgt.q_full_list); qla2x00_probe_one() 2336 spin_lock_init(&ha->tgt.q_full_lock); qla2x00_probe_one() 2403 ha->tgt.atio_q_length = ATIO_ENTRY_CNT_24XX; qla2x00_probe_one() 2419 ha->tgt.atio_q_length = ATIO_ENTRY_CNT_24XX; qla2x00_probe_one() 2435 ha->tgt.atio_q_length = ATIO_ENTRY_CNT_24XX; qla2x00_probe_one() 2482 ha->tgt.atio_q_length = ATIO_ENTRY_CNT_24XX; qla2x00_probe_one() 3746 ha->tgt.atio_ring = NULL; qla2x00_mem_free() 3747 ha->tgt.atio_dma = 0; qla2x00_mem_free() 3748 ha->tgt.tgt_vp_map = NULL; qla2x00_mem_free()
|
H A D | qla_def.h | 683 #define ISP_ATIO_Q_IN(vha) (vha->hw->tgt.atio_q_in) 684 #define ISP_ATIO_Q_OUT(vha) (vha->hw->tgt.atio_q_out) 3166 #define IS_TGT_MODE_CAPABLE(ha) (ha->tgt.atio_q_length) 3474 struct qlt_hw_data tgt; member in struct:qla_hw_data
|
H A D | qla_init.c | 1569 if (ha->tgt.atio_ring) qla2x00_alloc_fw_dump() 1570 mq_size += ha->tgt.atio_q_length * sizeof(request_t); qla2x00_alloc_fw_dump() 2114 icb->atio_q_length = cpu_to_le16(ha->tgt.atio_q_length); qla24xx_config_rings() 2115 icb->atio_q_address[0] = cpu_to_le32(LSD(ha->tgt.atio_dma)); qla24xx_config_rings() 2116 icb->atio_q_address[1] = cpu_to_le32(MSD(ha->tgt.atio_dma)); qla24xx_config_rings() 2225 ha->tgt.atio_ring_ptr = ha->tgt.atio_ring; qla2x00_init_rings() 2226 ha->tgt.atio_ring_index = 0; qla2x00_init_rings()
|
H A D | qla_dbg.c | 518 if (!ha->tgt.atio_ring) qla2xxx_copy_atioqueues() 523 aqp->length = ha->tgt.atio_q_length; qla2xxx_copy_atioqueues() 524 aqp->ring = ha->tgt.atio_ring; qla2xxx_copy_atioqueues()
|
H A D | qla_mr.c | 1182 "TGT-ID Change(%s): Present tgt id: " qlafx00_find_all_targets() 1191 "TGT-ID Announce(%s): Discovered tgt " qlafx00_find_all_targets()
|
H A D | qla_attr.c | 2296 fc_host_supported_classes(vha->host) = ha->tgt.enable_class_2 ? qla2x00_init_host_attr()
|
/linux-4.1.27/drivers/scsi/ibmvscsi/ |
H A D | ibmvfc.c | 421 * @tgt: ibmvfc target struct 425 static void ibmvfc_set_tgt_action(struct ibmvfc_target *tgt, ibmvfc_set_tgt_action() argument 428 switch (tgt->action) { ibmvfc_set_tgt_action() 431 tgt->action = action; ibmvfc_set_tgt_action() 436 tgt->add_rport = 0; ibmvfc_set_tgt_action() 437 tgt->action = action; ibmvfc_set_tgt_action() 556 struct ibmvfc_target *tgt; ibmvfc_link_down() local 560 list_for_each_entry(tgt, &vhost->targets, queue) ibmvfc_link_down() 561 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_link_down() 578 struct ibmvfc_target *tgt; ibmvfc_init_host() local 593 list_for_each_entry(tgt, &vhost->targets, queue) ibmvfc_init_host() 594 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_init_host() 915 struct ibmvfc_target *tgt; __ibmvfc_get_target() local 917 list_for_each_entry(tgt, &vhost->targets, queue) __ibmvfc_get_target() 918 if (tgt->target_id == starget->id) { __ibmvfc_get_target() 919 kref_get(&tgt->kref); __ibmvfc_get_target() 920 return tgt; __ibmvfc_get_target() 935 struct ibmvfc_target *tgt; ibmvfc_get_target() local 939 tgt = __ibmvfc_get_target(starget); ibmvfc_get_target() 941 return tgt; ibmvfc_get_target() 1050 struct ibmvfc_target *tgt = container_of(kref, struct ibmvfc_target, kref); ibmvfc_release_tgt() local 1051 kfree(tgt); ibmvfc_release_tgt() 1063 struct ibmvfc_target *tgt = ibmvfc_get_target(starget); ibmvfc_get_starget_node_name() local 1064 fc_starget_port_name(starget) = tgt ? tgt->ids.node_name : 0; ibmvfc_get_starget_node_name() 1065 if (tgt) ibmvfc_get_starget_node_name() 1066 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_get_starget_node_name() 1078 struct ibmvfc_target *tgt = ibmvfc_get_target(starget); ibmvfc_get_starget_port_name() local 1079 fc_starget_port_name(starget) = tgt ? tgt->ids.port_name : 0; ibmvfc_get_starget_port_name() 1080 if (tgt) ibmvfc_get_starget_port_name() 1081 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_get_starget_port_name() 1093 struct ibmvfc_target *tgt = ibmvfc_get_target(starget); ibmvfc_get_starget_port_id() local 1094 fc_starget_port_id(starget) = tgt ? tgt->scsi_id : -1; ibmvfc_get_starget_port_id() 1095 if (tgt) ibmvfc_get_starget_port_id() 1096 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_get_starget_port_id() 1506 struct ibmvfc_target *tgt; ibmvfc_relogin() local 1508 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_relogin() 1509 if (rport == tgt->rport) { ibmvfc_relogin() 1510 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_relogin() 1759 struct ibmvfc_target *tgt; ibmvfc_bsg_plogi() local 1767 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_bsg_plogi() 1768 if (tgt->scsi_id == port_id) { ibmvfc_bsg_plogi() 2636 struct ibmvfc_target *tgt; ibmvfc_handle_async() local 2682 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_handle_async() 2685 if (crq->scsi_id && cpu_to_be64(tgt->scsi_id) != crq->scsi_id) ibmvfc_handle_async() 2687 if (crq->wwpn && cpu_to_be64(tgt->ids.port_name) != crq->wwpn) ibmvfc_handle_async() 2689 if (crq->node_name && cpu_to_be64(tgt->ids.node_name) != crq->node_name) ibmvfc_handle_async() 2691 if (tgt->need_login && be64_to_cpu(crq->event) == IBMVFC_AE_ELS_LOGO) ibmvfc_handle_async() 2692 tgt->logo_rcvd = 1; ibmvfc_handle_async() 2693 if (!tgt->need_login || be64_to_cpu(crq->event) == IBMVFC_AE_ELS_PLOGI) { ibmvfc_handle_async() 2694 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_handle_async() 3220 * @tgt: ibmvfc target struct 3224 static void ibmvfc_init_tgt(struct ibmvfc_target *tgt, ibmvfc_init_tgt() argument 3227 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT); ibmvfc_init_tgt() 3228 tgt->job_step = job_step; ibmvfc_init_tgt() 3229 wake_up(&tgt->vhost->work_wait_q); ibmvfc_init_tgt() 3234 * @tgt: ibmvfc target struct 3240 static int ibmvfc_retry_tgt_init(struct ibmvfc_target *tgt, ibmvfc_retry_tgt_init() argument 3243 if (++tgt->init_retries > IBMVFC_MAX_TGT_INIT_RETRIES) { ibmvfc_retry_tgt_init() 3244 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_retry_tgt_init() 3245 wake_up(&tgt->vhost->work_wait_q); ibmvfc_retry_tgt_init() 3248 ibmvfc_init_tgt(tgt, job_step); ibmvfc_retry_tgt_init() 3293 struct ibmvfc_target *tgt = evt->tgt; ibmvfc_tgt_prli_done() local 3301 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_prli_done() 3304 tgt_dbg(tgt, "Process Login succeeded: %X %02X %04X\n", ibmvfc_tgt_prli_done() 3311 tgt->need_login = 0; ibmvfc_tgt_prli_done() 3312 tgt->ids.roles = 0; ibmvfc_tgt_prli_done() 3314 tgt->ids.roles |= FC_PORT_ROLE_FCP_TARGET; ibmvfc_tgt_prli_done() 3316 tgt->ids.roles |= FC_PORT_ROLE_FCP_INITIATOR; ibmvfc_tgt_prli_done() 3317 tgt->add_rport = 1; ibmvfc_tgt_prli_done() 3319 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_prli_done() 3321 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_prli); ibmvfc_tgt_prli_done() 3323 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_prli_done() 3325 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_prli_done() 3330 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_prli); ibmvfc_tgt_prli_done() 3336 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi); ibmvfc_tgt_prli_done() 3337 else if (tgt->logo_rcvd) ibmvfc_tgt_prli_done() 3338 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi); ibmvfc_tgt_prli_done() 3340 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_prli); ibmvfc_tgt_prli_done() 3342 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_prli_done() 3344 tgt_log(tgt, level, "Process Login failed: %s (%x:%x) rc=0x%02X\n", ibmvfc_tgt_prli_done() 3350 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_prli_done() 3357 * @tgt: ibmvfc target struct 3360 static void ibmvfc_tgt_send_prli(struct ibmvfc_target *tgt) ibmvfc_tgt_send_prli() argument 3363 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_tgt_send_prli() 3369 kref_get(&tgt->kref); ibmvfc_tgt_send_prli() 3373 evt->tgt = tgt; ibmvfc_tgt_send_prli() 3379 prli->scsi_id = cpu_to_be64(tgt->scsi_id); ibmvfc_tgt_send_prli() 3385 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_tgt_send_prli() 3388 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_send_prli() 3389 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_send_prli() 3391 tgt_dbg(tgt, "Sent process login\n"); ibmvfc_tgt_send_prli() 3401 struct ibmvfc_target *tgt = evt->tgt; ibmvfc_tgt_plogi_done() local 3408 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_plogi_done() 3411 tgt_dbg(tgt, "Port Login succeeded\n"); ibmvfc_tgt_plogi_done() 3412 if (tgt->ids.port_name && ibmvfc_tgt_plogi_done() 3413 tgt->ids.port_name != wwn_to_u64(rsp->service_parms.port_name)) { ibmvfc_tgt_plogi_done() 3415 tgt_dbg(tgt, "Port re-init required\n"); ibmvfc_tgt_plogi_done() 3418 tgt->ids.node_name = wwn_to_u64(rsp->service_parms.node_name); ibmvfc_tgt_plogi_done() 3419 tgt->ids.port_name = wwn_to_u64(rsp->service_parms.port_name); ibmvfc_tgt_plogi_done() 3420 tgt->ids.port_id = tgt->scsi_id; ibmvfc_tgt_plogi_done() 3421 memcpy(&tgt->service_parms, &rsp->service_parms, ibmvfc_tgt_plogi_done() 3422 sizeof(tgt->service_parms)); ibmvfc_tgt_plogi_done() 3423 memcpy(&tgt->service_parms_change, &rsp->service_parms_change, ibmvfc_tgt_plogi_done() 3424 sizeof(tgt->service_parms_change)); ibmvfc_tgt_plogi_done() 3425 ibmvfc_init_tgt(tgt, ibmvfc_tgt_send_prli); ibmvfc_tgt_plogi_done() 3430 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi); ibmvfc_tgt_plogi_done() 3435 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi); ibmvfc_tgt_plogi_done() 3437 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_plogi_done() 3439 tgt_log(tgt, level, "Port Login failed: %s (%x:%x) %s (%x) %s (%x) rc=0x%02X\n", ibmvfc_tgt_plogi_done() 3446 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_plogi_done() 3453 * @tgt: ibmvfc target struct 3456 static void ibmvfc_tgt_send_plogi(struct ibmvfc_target *tgt) ibmvfc_tgt_send_plogi() argument 3459 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_tgt_send_plogi() 3465 kref_get(&tgt->kref); ibmvfc_tgt_send_plogi() 3466 tgt->logo_rcvd = 0; ibmvfc_tgt_send_plogi() 3469 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_tgt_send_plogi() 3471 evt->tgt = tgt; ibmvfc_tgt_send_plogi() 3477 plogi->scsi_id = cpu_to_be64(tgt->scsi_id); ibmvfc_tgt_send_plogi() 3481 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_send_plogi() 3482 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_send_plogi() 3484 tgt_dbg(tgt, "Sent port login\n"); ibmvfc_tgt_send_plogi() 3494 struct ibmvfc_target *tgt = evt->tgt; ibmvfc_tgt_implicit_logout_done() local 3501 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_implicit_logout_done() 3505 tgt_dbg(tgt, "Implicit Logout succeeded\n"); ibmvfc_tgt_implicit_logout_done() 3508 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_implicit_logout_done() 3513 tgt_err(tgt, "Implicit Logout failed: rc=0x%02X\n", status); ibmvfc_tgt_implicit_logout_done() 3518 ibmvfc_init_tgt(tgt, ibmvfc_tgt_send_plogi); ibmvfc_tgt_implicit_logout_done() 3520 tgt->scsi_id != tgt->new_scsi_id) ibmvfc_tgt_implicit_logout_done() 3521 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_implicit_logout_done() 3522 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_implicit_logout_done() 3528 * @tgt: ibmvfc target struct 3531 static void ibmvfc_tgt_implicit_logout(struct ibmvfc_target *tgt) ibmvfc_tgt_implicit_logout() argument 3534 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_tgt_implicit_logout() 3540 kref_get(&tgt->kref); ibmvfc_tgt_implicit_logout() 3544 evt->tgt = tgt; ibmvfc_tgt_implicit_logout() 3550 mad->old_scsi_id = cpu_to_be64(tgt->scsi_id); ibmvfc_tgt_implicit_logout() 3552 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_tgt_implicit_logout() 3555 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_implicit_logout() 3556 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_implicit_logout() 3558 tgt_dbg(tgt, "Sent Implicit Logout\n"); ibmvfc_tgt_implicit_logout() 3564 * @tgt: ibmvfc target struct 3570 struct ibmvfc_target *tgt) ibmvfc_adisc_needs_plogi() 3572 if (memcmp(&mad->fc_iu.response[2], &tgt->ids.port_name, ibmvfc_adisc_needs_plogi() 3573 sizeof(tgt->ids.port_name))) ibmvfc_adisc_needs_plogi() 3575 if (memcmp(&mad->fc_iu.response[4], &tgt->ids.node_name, ibmvfc_adisc_needs_plogi() 3576 sizeof(tgt->ids.node_name))) ibmvfc_adisc_needs_plogi() 3578 if (be32_to_cpu(mad->fc_iu.response[6]) != tgt->scsi_id) ibmvfc_adisc_needs_plogi() 3590 struct ibmvfc_target *tgt = evt->tgt; ibmvfc_tgt_adisc_done() local 3597 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_adisc_done() 3598 del_timer(&tgt->timer); ibmvfc_tgt_adisc_done() 3602 tgt_dbg(tgt, "ADISC succeeded\n"); ibmvfc_tgt_adisc_done() 3603 if (ibmvfc_adisc_needs_plogi(mad, tgt)) ibmvfc_tgt_adisc_done() 3604 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_adisc_done() 3610 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_adisc_done() 3613 tgt_info(tgt, "ADISC failed: %s (%x:%x) %s (%x) %s (%x) rc=0x%02X\n", ibmvfc_tgt_adisc_done() 3621 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_adisc_done() 3667 struct ibmvfc_target *tgt = evt->tgt; ibmvfc_tgt_adisc_cancel_done() local 3669 tgt_dbg(tgt, "ADISC cancel complete\n"); ibmvfc_tgt_adisc_cancel_done() 3672 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_adisc_cancel_done() 3678 * @tgt: ibmvfc target struct 3684 static void ibmvfc_adisc_timeout(struct ibmvfc_target *tgt) ibmvfc_adisc_timeout() argument 3686 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_adisc_timeout() 3692 tgt_dbg(tgt, "ADISC timeout\n"); ibmvfc_adisc_timeout() 3695 tgt->action != IBMVFC_TGT_ACTION_INIT_WAIT || ibmvfc_adisc_timeout() 3703 kref_get(&tgt->kref); ibmvfc_adisc_timeout() 3707 evt->tgt = tgt; ibmvfc_adisc_timeout() 3713 tmf->scsi_id = cpu_to_be64(tgt->scsi_id); ibmvfc_adisc_timeout() 3714 tmf->cancel_key = cpu_to_be32(tgt->cancel_key); ibmvfc_adisc_timeout() 3719 tgt_err(tgt, "Failed to send cancel event for ADISC. rc=%d\n", rc); ibmvfc_adisc_timeout() 3721 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_adisc_timeout() 3724 tgt_dbg(tgt, "Attempting to cancel ADISC\n"); ibmvfc_adisc_timeout() 3730 * @tgt: ibmvfc target struct 3739 static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt) ibmvfc_tgt_adisc() argument 3742 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_tgt_adisc() 3748 kref_get(&tgt->kref); ibmvfc_tgt_adisc() 3752 evt->tgt = tgt; ibmvfc_tgt_adisc() 3757 mad->iu.scsi_id = cpu_to_be64(tgt->scsi_id); ibmvfc_tgt_adisc() 3758 mad->iu.cancel_key = cpu_to_be32(tgt->cancel_key); ibmvfc_tgt_adisc() 3767 if (timer_pending(&tgt->timer)) ibmvfc_tgt_adisc() 3768 mod_timer(&tgt->timer, jiffies + (IBMVFC_ADISC_TIMEOUT * HZ)); ibmvfc_tgt_adisc() 3770 tgt->timer.data = (unsigned long) tgt; ibmvfc_tgt_adisc() 3771 tgt->timer.expires = jiffies + (IBMVFC_ADISC_TIMEOUT * HZ); ibmvfc_tgt_adisc() 3772 tgt->timer.function = (void (*)(unsigned long))ibmvfc_adisc_timeout; ibmvfc_tgt_adisc() 3773 add_timer(&tgt->timer); ibmvfc_tgt_adisc() 3776 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_tgt_adisc() 3779 del_timer(&tgt->timer); ibmvfc_tgt_adisc() 3780 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_adisc() 3781 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_adisc() 3783 tgt_dbg(tgt, "Sent ADISC\n"); ibmvfc_tgt_adisc() 3793 struct ibmvfc_target *tgt = evt->tgt; ibmvfc_tgt_query_target_done() local 3800 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_query_target_done() 3803 tgt_dbg(tgt, "Query Target succeeded\n"); ibmvfc_tgt_query_target_done() 3804 tgt->new_scsi_id = be64_to_cpu(rsp->scsi_id); ibmvfc_tgt_query_target_done() 3805 if (be64_to_cpu(rsp->scsi_id) != tgt->scsi_id) ibmvfc_tgt_query_target_done() 3806 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout); ibmvfc_tgt_query_target_done() 3808 ibmvfc_init_tgt(tgt, ibmvfc_tgt_adisc); ibmvfc_tgt_query_target_done() 3813 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_query_target); ibmvfc_tgt_query_target_done() 3820 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_query_target_done() 3822 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_query_target); ibmvfc_tgt_query_target_done() 3824 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); ibmvfc_tgt_query_target_done() 3826 tgt_log(tgt, level, "Query Target failed: %s (%x:%x) %s (%x) %s (%x) rc=0x%02X\n", ibmvfc_tgt_query_target_done() 3834 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_query_target_done() 3841 * @tgt: ibmvfc target struct 3844 static void ibmvfc_tgt_query_target(struct ibmvfc_target *tgt) ibmvfc_tgt_query_target() argument 3847 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_tgt_query_target() 3853 kref_get(&tgt->kref); ibmvfc_tgt_query_target() 3856 evt->tgt = tgt; ibmvfc_tgt_query_target() 3863 query_tgt->wwpn = cpu_to_be64(tgt->ids.port_name); ibmvfc_tgt_query_target() 3865 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_tgt_query_target() 3868 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); ibmvfc_tgt_query_target() 3869 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_query_target() 3871 tgt_dbg(tgt, "Sent Query Target\n"); ibmvfc_tgt_query_target() 3884 struct ibmvfc_target *tgt; ibmvfc_alloc_target() local 3888 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_alloc_target() 3889 if (tgt->scsi_id == scsi_id) { ibmvfc_alloc_target() 3890 if (tgt->need_login) ibmvfc_alloc_target() 3891 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout); ibmvfc_alloc_target() 3897 tgt = mempool_alloc(vhost->tgt_pool, GFP_NOIO); ibmvfc_alloc_target() 3898 if (!tgt) { ibmvfc_alloc_target() 3904 memset(tgt, 0, sizeof(*tgt)); ibmvfc_alloc_target() 3905 tgt->scsi_id = scsi_id; ibmvfc_alloc_target() 3906 tgt->new_scsi_id = scsi_id; ibmvfc_alloc_target() 3907 tgt->vhost = vhost; ibmvfc_alloc_target() 3908 tgt->need_login = 1; ibmvfc_alloc_target() 3909 tgt->cancel_key = vhost->task_set++; ibmvfc_alloc_target() 3910 init_timer(&tgt->timer); ibmvfc_alloc_target() 3911 kref_init(&tgt->kref); ibmvfc_alloc_target() 3912 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout); ibmvfc_alloc_target() 3914 list_add_tail(&tgt->queue, &vhost->targets); ibmvfc_alloc_target() 4186 struct ibmvfc_target *tgt; ibmvfc_dev_init_to_do() local 4188 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_dev_init_to_do() 4189 if (tgt->action == IBMVFC_TGT_ACTION_INIT || ibmvfc_dev_init_to_do() 4190 tgt->action == IBMVFC_TGT_ACTION_INIT_WAIT) ibmvfc_dev_init_to_do() 4206 struct ibmvfc_target *tgt; __ibmvfc_work_to_do() local 4219 list_for_each_entry(tgt, &vhost->targets, queue) __ibmvfc_work_to_do() 4220 if (tgt->action == IBMVFC_TGT_ACTION_INIT) __ibmvfc_work_to_do() 4222 list_for_each_entry(tgt, &vhost->targets, queue) __ibmvfc_work_to_do() 4223 if (tgt->action == IBMVFC_TGT_ACTION_INIT_WAIT) __ibmvfc_work_to_do() 4279 * @tgt: ibmvfc target struct 4282 static void ibmvfc_tgt_add_rport(struct ibmvfc_target *tgt) ibmvfc_tgt_add_rport() argument 4284 struct ibmvfc_host *vhost = tgt->vhost; ibmvfc_tgt_add_rport() 4288 tgt_dbg(tgt, "Adding rport\n"); ibmvfc_tgt_add_rport() 4289 rport = fc_remote_port_add(vhost->host, 0, &tgt->ids); ibmvfc_tgt_add_rport() 4292 if (rport && tgt->action == IBMVFC_TGT_ACTION_DEL_RPORT) { ibmvfc_tgt_add_rport() 4293 tgt_dbg(tgt, "Deleting rport\n"); ibmvfc_tgt_add_rport() 4294 list_del(&tgt->queue); ibmvfc_tgt_add_rport() 4295 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DELETED_RPORT); ibmvfc_tgt_add_rport() 4298 del_timer_sync(&tgt->timer); ibmvfc_tgt_add_rport() 4299 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_tgt_add_rport() 4301 } else if (rport && tgt->action == IBMVFC_TGT_ACTION_DELETED_RPORT) { ibmvfc_tgt_add_rport() 4307 tgt_dbg(tgt, "rport add succeeded\n"); ibmvfc_tgt_add_rport() 4308 tgt->rport = rport; ibmvfc_tgt_add_rport() 4309 rport->maxframe_size = be16_to_cpu(tgt->service_parms.common.bb_rcv_sz) & 0x0fff; ibmvfc_tgt_add_rport() 4311 tgt->target_id = rport->scsi_target_id; ibmvfc_tgt_add_rport() 4312 if (be32_to_cpu(tgt->service_parms.class1_parms[0]) & 0x80000000) ibmvfc_tgt_add_rport() 4314 if (be32_to_cpu(tgt->service_parms.class2_parms[0]) & 0x80000000) ibmvfc_tgt_add_rport() 4316 if (be32_to_cpu(tgt->service_parms.class3_parms[0]) & 0x80000000) ibmvfc_tgt_add_rport() 4321 tgt_dbg(tgt, "rport add failed\n"); ibmvfc_tgt_add_rport() 4332 struct ibmvfc_target *tgt; ibmvfc_do_work() local 4382 list_for_each_entry(tgt, &vhost->targets, queue) ibmvfc_do_work() 4383 ibmvfc_init_tgt(tgt, ibmvfc_tgt_query_target); ibmvfc_do_work() 4387 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_do_work() 4388 if (tgt->action == IBMVFC_TGT_ACTION_INIT) { ibmvfc_do_work() 4389 tgt->job_step(tgt); ibmvfc_do_work() 4399 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_do_work() 4400 if (tgt->action == IBMVFC_TGT_ACTION_DEL_RPORT) { ibmvfc_do_work() 4401 tgt_dbg(tgt, "Deleting rport\n"); ibmvfc_do_work() 4402 rport = tgt->rport; ibmvfc_do_work() 4403 tgt->rport = NULL; ibmvfc_do_work() 4404 list_del(&tgt->queue); ibmvfc_do_work() 4405 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DELETED_RPORT); ibmvfc_do_work() 4409 del_timer_sync(&tgt->timer); ibmvfc_do_work() 4410 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_do_work() 4452 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_do_work() 4453 if (tgt->action == IBMVFC_TGT_ACTION_INIT) { ibmvfc_do_work() 4454 tgt->job_step(tgt); ibmvfc_do_work() 4699 struct ibmvfc_target *tgt; ibmvfc_rport_add_thread() local 4711 list_for_each_entry(tgt, &vhost->targets, queue) { ibmvfc_rport_add_thread() 4712 if (tgt->add_rport) { ibmvfc_rport_add_thread() 4714 tgt->add_rport = 0; ibmvfc_rport_add_thread() 4715 kref_get(&tgt->kref); ibmvfc_rport_add_thread() 4716 rport = tgt->rport; ibmvfc_rport_add_thread() 4719 ibmvfc_tgt_add_rport(tgt); ibmvfc_rport_add_thread() 4722 tgt_dbg(tgt, "Setting rport roles\n"); ibmvfc_rport_add_thread() 4723 fc_remote_port_rolechg(rport, tgt->ids.roles); ibmvfc_rport_add_thread() 4727 kref_put(&tgt->kref, ibmvfc_release_tgt); ibmvfc_rport_add_thread() 3569 ibmvfc_adisc_needs_plogi(struct ibmvfc_passthru_mad *mad, struct ibmvfc_target *tgt) ibmvfc_adisc_needs_plogi() argument
|
H A D | ibmvfc.h | 636 struct ibmvfc_target *tgt; member in struct:ibmvfc_event
|
/linux-4.1.27/drivers/staging/lustre/lustre/lov/ |
H A D | lov_obd.c | 63 /* Keep a refcount of lov->tgt usage to prevent racing with addition/deletion. 76 static void __lov_del_obd(struct obd_device *obd, struct lov_tgt_desc *tgt); 87 struct lov_tgt_desc *tgt, *n; lov_putref() local 91 tgt = lov->lov_tgts[i]; lov_putref() 93 if (!tgt || !tgt->ltd_reap) lov_putref() 95 list_add(&tgt->ltd_kill, &kill); lov_putref() 97 * being the maximum tgt index for computing the lov_putref() 105 list_for_each_entry_safe(tgt, n, &kill, ltd_kill) { lov_putref() 106 list_del(&tgt->ltd_kill); lov_putref() 108 __lov_del_obd(obd, tgt); lov_putref() 186 CDEBUG(D_CONFIG, "Connected tgt idx %d %s (%s) %sactive\n", index, lov_connect_obd() 221 struct lov_tgt_desc *tgt; lov_connect() local 243 tgt = lov->lov_tgts[i]; lov_connect() 244 if (!tgt || obd_uuid_empty(&tgt->ltd_uuid)) lov_connect() 247 rc = lov_connect_obd(obd, i, tgt->ltd_activate, &lov->lov_ocd); lov_connect() 249 CERROR("%s: lov connect tgt %d failed: %d\n", lov_connect() 269 static int lov_disconnect_obd(struct obd_device *obd, struct lov_tgt_desc *tgt) lov_disconnect_obd() argument 276 osc_obd = class_exp2obd(tgt->ltd_exp); lov_disconnect_obd() 280 if (tgt->ltd_active) { lov_disconnect_obd() 281 tgt->ltd_active = 0; lov_disconnect_obd() 283 tgt->ltd_exp->exp_obd->obd_inactive = 1; lov_disconnect_obd() 302 rc = obd_disconnect(tgt->ltd_exp); lov_disconnect_obd() 305 tgt->ltd_uuid.uuid, rc); lov_disconnect_obd() 309 tgt->ltd_exp = NULL; lov_disconnect_obd() 358 struct lov_tgt_desc *tgt; lov_set_osc_active() local 366 tgt = lov->lov_tgts[index]; lov_set_osc_active() 367 if (!tgt) lov_set_osc_active() 373 if (ev == OBD_NOTIFY_ACTIVATE && tgt->ltd_exp == NULL && lov_set_osc_active() 374 obd_uuid_equals(uuid, &tgt->ltd_uuid)) { lov_set_osc_active() 377 obd_connect(NULL, &tgt->ltd_exp, tgt->ltd_obd, lov_set_osc_active() 380 if (!tgt->ltd_exp) lov_set_osc_active() 384 index, obd_uuid2str(&tgt->ltd_uuid), lov_set_osc_active() 385 tgt->ltd_exp->exp_handle.h_cookie); lov_set_osc_active() 386 if (obd_uuid_equals(uuid, &tgt->ltd_uuid)) lov_set_osc_active() 521 struct lov_tgt_desc *tgt; lov_add_target() local 542 tgt = lov->lov_tgts[index]; lov_add_target() 544 obd_uuid2str(&tgt->ltd_uuid), index); lov_add_target() 580 OBD_ALLOC_PTR(tgt); lov_add_target() 581 if (!tgt) { lov_add_target() 589 OBD_FREE_PTR(tgt); lov_add_target() 593 tgt->ltd_uuid = *uuidp; lov_add_target() 594 tgt->ltd_obd = tgt_obd; lov_add_target() 596 tgt->ltd_gen = gen; lov_add_target() 597 tgt->ltd_index = index; lov_add_target() 598 tgt->ltd_activate = active; lov_add_target() 599 lov->lov_tgts[index] = tgt; lov_add_target() 606 index, tgt->ltd_gen, lov->desc.ld_tgt_count); lov_add_target() 624 if (!tgt->ltd_exp) { lov_add_target() 630 rc = obd_set_info_async(NULL, tgt->ltd_exp, lov_add_target() 638 rc = lov_notify(obd, tgt->ltd_exp->exp_obd, lov_add_target() 645 obd_uuid2str(&tgt->ltd_uuid)); lov_add_target() 699 static void __lov_del_obd(struct obd_device *obd, struct lov_tgt_desc *tgt) __lov_del_obd() argument 703 LASSERT(tgt); __lov_del_obd() 704 LASSERT(tgt->ltd_reap); __lov_del_obd() 706 osc_obd = class_exp2obd(tgt->ltd_exp); __lov_del_obd() 708 CDEBUG(D_CONFIG, "Removing tgt %s : %s\n", __lov_del_obd() 709 tgt->ltd_uuid.uuid, __lov_del_obd() 712 if (tgt->ltd_exp) __lov_del_obd() 713 lov_disconnect_obd(obd, tgt); __lov_del_obd() 715 OBD_FREE_PTR(tgt); __lov_del_obd() 900 CERROR("lov tgt %d not cleaned! deathrow=%d, lovrc=%d\n", lov_cleanup() 1504 struct lov_tgt_desc *tgt = NULL; lov_iocontrol() local 1511 tgt = lov->lov_tgts[qctl->qc_idx]; lov_iocontrol() 1512 if (!tgt || !tgt->ltd_exp) lov_iocontrol() 1516 tgt = lov->lov_tgts[i]; lov_iocontrol() 1517 if (!tgt || lov_iocontrol() 1518 !obd_uuid_equals(&tgt->ltd_uuid, lov_iocontrol() 1522 if (tgt->ltd_exp == NULL) lov_iocontrol() 1534 LASSERT(tgt && tgt->ltd_exp); lov_iocontrol() 1540 rc = obd_quotactl(tgt->ltd_exp, oqctl); lov_iocontrol() 1544 qctl->obd_uuid = tgt->ltd_uuid; lov_iocontrol() 2025 struct lov_tgt_desc *tgt; lov_get_info() local 2028 tgt = lov->lov_tgts[info->idx]; lov_get_info() 2030 if (!tgt || !tgt->ltd_active) { lov_get_info() 2035 rc = obd_get_info(env, tgt->ltd_exp, keylen, key, lov_get_info() 2049 struct lov_tgt_desc *tgt; lov_get_info() local 2054 tgt = lov->lov_tgts[ost_idx]; lov_get_info() 2056 if (!tgt || !tgt->ltd_exp) { lov_get_info() 2061 *((__u64 *)val) = exp_connect_flags(tgt->ltd_exp); lov_get_info() 2085 struct lov_tgt_desc *tgt; lov_set_info_async() local 2123 tgt = lov->lov_tgts[((struct obd_id_info *)val)->idx]; lov_set_info_async() 2125 tgt = lov->lov_tgts[i]; lov_set_info_async() 2128 if (!tgt || !tgt->ltd_exp) lov_set_info_async() 2132 if (!tgt->ltd_active && !do_inactive) lov_set_info_async() 2143 &tgt->ltd_uuid)) lov_set_info_async() 2146 err = obd_set_info_async(env, tgt->ltd_exp, lov_set_info_async() 2150 err = obd_set_info_async(env, tgt->ltd_exp, lov_set_info_async() 2160 !obd_uuid_equals(info->uuid, &tgt->ltd_uuid)) lov_set_info_async() 2163 err = obd_set_info_async(env, tgt->ltd_exp, keylen, lov_set_info_async() 2169 !obd_uuid_equals(val, &tgt->ltd_uuid)) lov_set_info_async() 2172 err = obd_set_info_async(env, tgt->ltd_exp, lov_set_info_async() 2213 struct lov_tgt_desc *tgt; lov_quotactl() local 2228 /* for lov tgt */ lov_quotactl() 2233 tgt = lov->lov_tgts[i]; lov_quotactl() 2235 if (!tgt) lov_quotactl() 2238 if (!tgt->ltd_active || tgt->ltd_reap) { lov_quotactl() 2249 err = obd_quotactl(tgt->ltd_exp, oqctl); lov_quotactl() 2251 if (tgt->ltd_active && !rc) lov_quotactl()
|
H A D | lov_merge.c | 149 void lov_merge_attrs(struct obdo *tgt, struct obdo *src, u64 valid, lov_merge_attrs() argument 160 if (lov_size > tgt->o_size) lov_merge_attrs() 161 tgt->o_size = lov_size; lov_merge_attrs() 164 tgt->o_blocks += src->o_blocks; lov_merge_attrs() 166 tgt->o_blksize += src->o_blksize; lov_merge_attrs() 167 if (valid & OBD_MD_FLCTIME && tgt->o_ctime < src->o_ctime) lov_merge_attrs() 168 tgt->o_ctime = src->o_ctime; lov_merge_attrs() 169 if (valid & OBD_MD_FLMTIME && tgt->o_mtime < src->o_mtime) lov_merge_attrs() 170 tgt->o_mtime = src->o_mtime; lov_merge_attrs() 172 tgt->o_data_version += src->o_data_version; lov_merge_attrs() 174 memcpy(tgt, src, sizeof(*tgt)); lov_merge_attrs() 175 tgt->o_oi = lsm->lsm_oi; lov_merge_attrs() 177 tgt->o_size = lov_stripe_size(lsm, src->o_size, lov_merge_attrs() 183 tgt->o_valid &= ~OBD_MD_FLDATAVERSION; lov_merge_attrs()
|
H A D | lov_request.c | 143 struct lov_tgt_desc *tgt; lov_check_set() local 146 tgt = lov->lov_tgts[idx]; lov_check_set() 147 rc = !tgt || tgt->ltd_active || lov_check_set() 148 (tgt->ltd_exp && lov_check_set() 149 class_exp2cliimp(tgt->ltd_exp)->imp_connect_tried); lov_check_set() 163 struct lov_tgt_desc *tgt; lov_check_and_wait_active() local 168 tgt = lov->lov_tgts[ost_idx]; lov_check_and_wait_active() 170 if (unlikely(tgt == NULL)) { lov_check_and_wait_active() 175 if (likely(tgt->ltd_active)) { lov_check_and_wait_active() 180 if (tgt->ltd_exp && class_exp2cliimp(tgt->ltd_exp)->imp_connect_tried) { lov_check_and_wait_active() 192 if (tgt != NULL && tgt->ltd_active) lov_check_and_wait_active() 669 struct lov_tgt_desc *tgt; cb_statfs_update() local 687 tgt = lov->lov_tgts[lovreq->rq_idx]; cb_statfs_update() 688 if (!tgt || !tgt->ltd_active) cb_statfs_update() 691 tgtobd = class_exp2obd(tgt->ltd_exp); cb_statfs_update()
|
H A D | lov_dev.c | 399 struct lov_tgt_desc *tgt; lov_cl_add_target() local 406 tgt = obd->u.lov.lov_tgts[index]; lov_cl_add_target() 407 LASSERT(tgt != NULL); lov_cl_add_target() 408 LASSERT(tgt->ltd_obd != NULL); lov_cl_add_target() 410 if (!tgt->ltd_obd->obd_set_up) { lov_cl_add_target() 411 CERROR("Target %s not set up\n", obd_uuid2str(&tgt->ltd_uuid)); lov_cl_add_target() 420 tgt->ltd_obd->obd_lu_dev); lov_cl_add_target() 428 obd_uuid2str(&tgt->ltd_uuid)); lov_cl_add_target()
|
H A D | lproc_lov.c | 236 struct lov_tgt_desc *tgt = v; lov_tgt_seq_show() local 239 tgt->ltd_index, obd_uuid2str(&tgt->ltd_uuid), lov_tgt_seq_show() 240 tgt->ltd_active ? "" : "IN"); lov_tgt_seq_show()
|
H A D | lov_ea.c | 168 static void lov_tgt_maxbytes(struct lov_tgt_desc *tgt, __u64 *stripe_maxbytes) lov_tgt_maxbytes() argument 170 struct obd_import *imp = tgt->ltd_obd->u.cli.cl_import; lov_tgt_maxbytes() 172 if (imp == NULL || !tgt->ltd_active) { lov_tgt_maxbytes()
|
H A D | lov_pool.c | 257 struct lov_tgt_desc *tgt; pool_proc_show() local 264 tgt = pool_tgt(iter->pool, iter->idx); pool_proc_show() 266 if (tgt) pool_proc_show() 267 seq_printf(s, "%s\n", obd_uuid2str(&(tgt->ltd_uuid))); pool_proc_show()
|
H A D | lov_internal.h | 169 void lov_merge_attrs(struct obdo *tgt, struct obdo *src, u64 valid, 192 int qos_del_tgt(struct obd_device *obd, struct lov_tgt_desc *tgt);
|
/linux-4.1.27/drivers/firmware/ |
H A D | iscsi_ibft.c | 182 struct ibft_tgt *tgt; member in union:ibft_kobject::__anon3922 357 struct ibft_tgt *tgt = entry->tgt; ibft_attr_show_target() local 362 if (!tgt) ibft_attr_show_target() 367 str += sprintf(str, "%d\n", tgt->hdr.index); ibft_attr_show_target() 370 str += sprintf(str, "%d\n", tgt->hdr.flags); ibft_attr_show_target() 373 str += sprintf_ipaddr(str, tgt->ip_addr); ibft_attr_show_target() 376 str += sprintf(str, "%d\n", tgt->port); ibft_attr_show_target() 380 str += sprintf(str, "%x", (u8)tgt->lun[i]); ibft_attr_show_target() 384 str += sprintf(str, "%d\n", tgt->nic_assoc); ibft_attr_show_target() 387 str += sprintf(str, "%d\n", tgt->chap_type); ibft_attr_show_target() 390 str += sprintf_string(str, tgt->tgt_name_len, ibft_attr_show_target() 391 (char *)ibft_loc + tgt->tgt_name_off); ibft_attr_show_target() 394 str += sprintf_string(str, tgt->chap_name_len, ibft_attr_show_target() 395 (char *)ibft_loc + tgt->chap_name_off); ibft_attr_show_target() 398 str += sprintf_string(str, tgt->chap_secret_len, ibft_attr_show_target() 399 (char *)ibft_loc + tgt->chap_secret_off); ibft_attr_show_target() 402 str += sprintf_string(str, tgt->rev_chap_name_len, ibft_attr_show_target() 404 tgt->rev_chap_name_off); ibft_attr_show_target() 407 str += sprintf_string(str, tgt->rev_chap_secret_len, ibft_attr_show_target() 409 tgt->rev_chap_secret_off); ibft_attr_show_target() 504 struct ibft_tgt *tgt = entry->tgt; ibft_check_tgt_for() local 517 if (tgt->tgt_name_len) ibft_check_tgt_for() 522 if (tgt->chap_name_len) ibft_check_tgt_for() 527 if (tgt->rev_chap_name_len) ibft_check_tgt_for() 634 sizeof(*ibft_kobj->tgt)); ibft_create_kobject()
|
/linux-4.1.27/drivers/md/ |
H A D | dm-table.c | 242 struct dm_target *tgt = t->targets + i; dm_table_destroy() local 244 if (tgt->type->dtr) dm_table_destroy() 245 tgt->type->dtr(tgt); dm_table_destroy() 247 dm_put_target_type(tgt->type); dm_table_destroy() 671 struct dm_target *tgt; dm_table_add_target() local 681 tgt = t->targets + t->num_targets; dm_table_add_target() 682 memset(tgt, 0, sizeof(*tgt)); dm_table_add_target() 689 tgt->type = dm_get_target_type(type); dm_table_add_target() 690 if (!tgt->type) { dm_table_add_target() 696 if (dm_target_needs_singleton(tgt->type)) { dm_table_add_target() 705 if (dm_target_always_writeable(tgt->type) && !(t->mode & FMODE_WRITE)) { dm_table_add_target() 712 if (t->immutable_target_type != tgt->type) { dm_table_add_target() 717 } else if (dm_target_is_immutable(tgt->type)) { dm_table_add_target() 720 dm_device_name(t->md), tgt->type->name); dm_table_add_target() 723 t->immutable_target_type = tgt->type; dm_table_add_target() 726 tgt->table = t; dm_table_add_target() 727 tgt->begin = start; dm_table_add_target() 728 tgt->len = len; dm_table_add_target() 729 tgt->error = "Unknown error"; dm_table_add_target() 734 if (!adjoin(t, tgt)) { dm_table_add_target() 735 tgt->error = "Gap in table"; dm_table_add_target() 742 tgt->error = "couldn't split parameters (insufficient memory)"; dm_table_add_target() 746 r = tgt->type->ctr(tgt, argc, argv); dm_table_add_target() 751 t->highs[t->num_targets++] = tgt->begin + tgt->len - 1; dm_table_add_target() 753 if (!tgt->num_discard_bios && tgt->discards_supported) dm_table_add_target() 760 DMERR("%s: %s: %s", dm_device_name(t->md), type, tgt->error); dm_table_add_target() 761 dm_put_target_type(tgt->type); dm_table_add_target() 834 struct dm_target *tgt; dm_table_set_type() local 840 tgt = t->targets + i; dm_table_set_type() 841 if (dm_target_hybrid(tgt)) dm_table_set_type() 843 else if (dm_target_request_based(tgt)) dm_table_set_type() 945 struct dm_target *tgt; dm_table_alloc_md_mempools() local 955 tgt = t->targets + i; dm_table_alloc_md_mempools() 956 per_bio_data_size = max(per_bio_data_size, tgt->per_bio_data_size); dm_table_alloc_md_mempools()
|
H A D | raid5.c | 1243 struct r5dev *tgt; mark_target_uptodate() local 1248 tgt = &sh->dev[target]; mark_target_uptodate() 1249 set_bit(R5_UPTODATE, &tgt->flags); mark_target_uptodate() 1250 BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); mark_target_uptodate() 1251 clear_bit(R5_Wantcompute, &tgt->flags); mark_target_uptodate() 1297 struct r5dev *tgt = &sh->dev[target]; ops_run_compute5() local 1298 struct page *xor_dest = tgt->page; ops_run_compute5() 1308 BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); ops_run_compute5() 1376 struct r5dev *tgt; ops_run_compute6_1() local 1393 tgt = &sh->dev[target]; ops_run_compute6_1() 1394 BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); ops_run_compute6_1() 1395 dest = tgt->page; ops_run_compute6_1() 1434 struct r5dev *tgt = &sh->dev[target]; ops_run_compute6_2() local 1444 BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags)); ops_run_compute6_2()
|
H A D | dm.c | 562 struct dm_target *tgt; dm_blk_ioctl() local 575 tgt = dm_table_get_target(map, 0); dm_blk_ioctl() 576 if (!tgt->type->ioctl) dm_blk_ioctl() 584 r = tgt->type->ioctl(tgt, cmd, arg); dm_blk_ioctl()
|
/linux-4.1.27/drivers/scsi/ |
H A D | virtio_scsi.c | 153 struct virtio_scsi_target_state *tgt = virtscsi_complete_cmd() local 212 atomic_dec(&tgt->reqs); virtscsi_complete_cmd() 568 struct virtio_scsi_target_state *tgt = virtscsi_queuecommand_single() local 571 atomic_inc(&tgt->reqs); virtscsi_queuecommand_single() 585 struct virtio_scsi_target_state *tgt) virtscsi_pick_vq() 592 if (atomic_inc_return(&tgt->reqs) > 1) { virtscsi_pick_vq() 596 seq = read_seqcount_begin(&tgt->tgt_seq); virtscsi_pick_vq() 597 vq = tgt->req_vq; virtscsi_pick_vq() 598 } while (read_seqcount_retry(&tgt->tgt_seq, seq)); virtscsi_pick_vq() 601 write_seqcount_begin(&tgt->tgt_seq); virtscsi_pick_vq() 604 if (unlikely(atomic_read(&tgt->reqs) > 1)) { virtscsi_pick_vq() 605 vq = tgt->req_vq; virtscsi_pick_vq() 612 tgt->req_vq = vq = &vscsi->req_vqs[queue_num]; virtscsi_pick_vq() 614 write_seqcount_end(&tgt->tgt_seq); virtscsi_pick_vq() 625 struct virtio_scsi_target_state *tgt = virtscsi_queuecommand_multi() local 632 req_vq = virtscsi_pick_vq(vscsi, tgt); virtscsi_queuecommand_multi() 735 struct virtio_scsi_target_state *tgt = virtscsi_target_alloc() local 736 kmalloc(sizeof(*tgt), GFP_KERNEL); virtscsi_target_alloc() 737 if (!tgt) virtscsi_target_alloc() 740 seqcount_init(&tgt->tgt_seq); virtscsi_target_alloc() 741 atomic_set(&tgt->reqs, 0); virtscsi_target_alloc() 742 tgt->req_vq = &vscsi->req_vqs[0]; virtscsi_target_alloc() 744 starget->hostdata = tgt; virtscsi_target_alloc() 750 struct virtio_scsi_target_state *tgt = starget->hostdata; virtscsi_target_destroy() local 751 kfree(tgt); virtscsi_target_destroy() 584 virtscsi_pick_vq(struct virtio_scsi *vscsi, struct virtio_scsi_target_state *tgt) virtscsi_pick_vq() argument
|
H A D | BusLogic.c | 1358 unsigned char *tgt, ch; blogic_rdconfig() local 1368 tgt = adapter->model; blogic_rdconfig() 1369 *tgt++ = 'B'; blogic_rdconfig() 1370 *tgt++ = 'T'; blogic_rdconfig() 1371 *tgt++ = '-'; blogic_rdconfig() 1373 *tgt++ = fpinfo->model[i]; blogic_rdconfig() 1374 *tgt++ = '\0'; blogic_rdconfig() 1488 tgt = adapter->model; blogic_rdconfig() 1489 *tgt++ = 'B'; blogic_rdconfig() 1490 *tgt++ = 'T'; blogic_rdconfig() 1491 *tgt++ = '-'; blogic_rdconfig() 1496 *tgt++ = ch; blogic_rdconfig() 1498 *tgt++ = '\0'; blogic_rdconfig() 1502 tgt = adapter->fw_ver; blogic_rdconfig() 1503 *tgt++ = id.fw_ver_digit1; blogic_rdconfig() 1504 *tgt++ = '.'; blogic_rdconfig() 1505 *tgt++ = id.fw_ver_digit2; blogic_rdconfig() 1507 *tgt++ = fw_ver_digit3; blogic_rdconfig() 1508 *tgt = '\0'; blogic_rdconfig() 1519 *tgt++ = fw_ver_letter; blogic_rdconfig() 1520 *tgt = '\0'; blogic_rdconfig() 3481 int tgt; blogic_show_info() local 3493 for (tgt = 0; tgt < adapter->maxdev; tgt++) { blogic_show_info() 3494 struct blogic_tgt_flags *tgt_flags = &adapter->tgt_flags[tgt]; blogic_show_info() 3497 seq_printf(m, " %2d %s", tgt, (tgt_flags->tagq_ok ? (tgt_flags->tagq_active ? " Active" : (adapter->tagq_ok & (1 << tgt) blogic_show_info() 3501 " %3d %3u %9u %9u\n", adapter->qdepth[tgt], adapter->active_cmds[tgt], tgt_stats[tgt].cmds_tried, tgt_stats[tgt].cmds_complete); blogic_show_info() 3506 for (tgt = 0; tgt < adapter->maxdev; tgt++) { blogic_show_info() 3507 struct blogic_tgt_flags *tgt_flags = &adapter->tgt_flags[tgt]; blogic_show_info() 3510 seq_printf(m, " %2d %9u %9u", tgt, tgt_stats[tgt].read_cmds, tgt_stats[tgt].write_cmds); blogic_show_info() 3511 if (tgt_stats[tgt].bytesread.billions > 0) blogic_show_info() 3512 seq_printf(m, " %9u%09u", tgt_stats[tgt].bytesread.billions, tgt_stats[tgt].bytesread.units); blogic_show_info() 3514 seq_printf(m, " %9u", tgt_stats[tgt].bytesread.units); blogic_show_info() 3515 if (tgt_stats[tgt].byteswritten.billions > 0) blogic_show_info() 3516 seq_printf(m, " %9u%09u\n", tgt_stats[tgt].byteswritten.billions, tgt_stats[tgt].byteswritten.units); blogic_show_info() 3518 seq_printf(m, " %9u\n", tgt_stats[tgt].byteswritten.units); blogic_show_info() 3523 for (tgt = 0; tgt < adapter->maxdev; tgt++) { blogic_show_info() 3524 struct blogic_tgt_flags *tgt_flags = &adapter->tgt_flags[tgt]; blogic_show_info() 3528 " %2d Read %9u %9u %9u %9u %9u\n", tgt, blogic_show_info() 3529 tgt_stats[tgt].read_sz_buckets[0], blogic_show_info() 3530 tgt_stats[tgt].read_sz_buckets[1], tgt_stats[tgt].read_sz_buckets[2], tgt_stats[tgt].read_sz_buckets[3], tgt_stats[tgt].read_sz_buckets[4]); blogic_show_info() 3532 " %2d Write %9u %9u %9u %9u %9u\n", tgt, blogic_show_info() 3533 tgt_stats[tgt].write_sz_buckets[0], blogic_show_info() 3534 tgt_stats[tgt].write_sz_buckets[1], tgt_stats[tgt].write_sz_buckets[2], tgt_stats[tgt].write_sz_buckets[3], tgt_stats[tgt].write_sz_buckets[4]); blogic_show_info() 3539 for (tgt = 0; tgt < adapter->maxdev; tgt++) { blogic_show_info() 3540 struct blogic_tgt_flags *tgt_flags = &adapter->tgt_flags[tgt]; blogic_show_info() 3544 " %2d Read %9u %9u %9u %9u %9u\n", tgt, blogic_show_info() 3545 tgt_stats[tgt].read_sz_buckets[5], blogic_show_info() 3546 tgt_stats[tgt].read_sz_buckets[6], tgt_stats[tgt].read_sz_buckets[7], tgt_stats[tgt].read_sz_buckets[8], tgt_stats[tgt].read_sz_buckets[9]); blogic_show_info() 3548 " %2d Write %9u %9u %9u %9u %9u\n", tgt, blogic_show_info() 3549 tgt_stats[tgt].write_sz_buckets[5], blogic_show_info() 3550 tgt_stats[tgt].write_sz_buckets[6], tgt_stats[tgt].write_sz_buckets[7], tgt_stats[tgt].write_sz_buckets[8], tgt_stats[tgt].write_sz_buckets[9]); blogic_show_info() 3559 for (tgt = 0; tgt < adapter->maxdev; tgt++) { blogic_show_info() 3560 struct blogic_tgt_flags *tgt_flags = &adapter->tgt_flags[tgt]; blogic_show_info() 3564 %2d %5d %5d %5d %5d %5d %5d %5d %5d %5d\n", tgt, tgt_stats[tgt].aborts_request, tgt_stats[tgt].aborts_tried, tgt_stats[tgt].aborts_done, tgt_stats[tgt].bdr_request, tgt_stats[tgt].bdr_tried, tgt_stats[tgt].bdr_done, tgt_stats[tgt].adatper_reset_req, tgt_stats[tgt].adapter_reset_attempt, tgt_stats[tgt].adapter_reset_done); blogic_show_info()
|
H A D | esp_scsi.c | 492 static void esp_write_tgt_config3(struct esp *esp, int tgt) esp_write_tgt_config3() argument 495 u8 val = esp->target[tgt].esp_config3; esp_write_tgt_config3() 504 static void esp_write_tgt_sync(struct esp *esp, int tgt) esp_write_tgt_sync() argument 506 u8 off = esp->target[tgt].esp_offset; esp_write_tgt_sync() 507 u8 per = esp->target[tgt].esp_period; esp_write_tgt_sync() 640 int tgt, lun; esp_autosense() local 643 tgt = dev->id; esp_autosense() 648 esp_log_autosense("Doing auto-sense for tgt[%d] lun[%d]\n", esp_autosense() 649 tgt, lun); esp_autosense() 675 val = tgt; esp_autosense() 680 esp_write_tgt_sync(esp, tgt); esp_autosense() 681 esp_write_tgt_config3(esp, tgt); esp_autosense() 726 int tgt, lun, i; esp_maybe_execute_command() local 745 tgt = dev->id; esp_maybe_execute_command() 747 tp = &esp->target[tgt]; esp_maybe_execute_command() 849 val = tgt; esp_maybe_execute_command() 854 esp_write_tgt_sync(esp, tgt); esp_maybe_execute_command() 855 esp_write_tgt_config3(esp, tgt); esp_maybe_execute_command() 860 printk("ESP: tgt[%d] lun[%d] scsi_cmd [ ", tgt, lun); esp_maybe_execute_command() 893 int tgt = dev->id; esp_cmd_is_done() local 924 printk("esp%d: tgt[%d] lun[%d] AUTO SENSE[ ", esp_cmd_is_done() 925 esp->host->unique_id, tgt, lun); esp_cmd_is_done() 1198 "Reconnect, no lp tgt[%u] lun[%u]\n", esp_reconnect() 1468 int tgt; esp_msgin_reject() local 1470 tgt = cmd->device->id; esp_msgin_reject() 1471 tp = &esp->target[tgt]; esp_msgin_reject() 1609 int tgt = cmd->device->id; esp_msgin_extended() local 1611 tp = &esp->target[tgt]; esp_msgin_extended() 1891 esp_log_disconnect("Disconnecting tgt[%d] tag[%x:%x]\n", esp_process_event()
|
H A D | mesh.c | 81 #define ALLOW_SYNC(tgt) ((sync_targets >> (tgt)) & 1) 82 #define ALLOW_RESEL(tgt) ((resel_targets >> (tgt)) & 1) 83 #define ALLOW_DEBUG(tgt) ((debug_targets >> (tgt)) & 1) 98 u8 tgt; member in struct:dbglog 224 tlp->tgt = ms->conn_tgt; dlog() 277 lp->bs1, lp->bs0, lp->phase, lp->tgt); dumpslog() 292 static inline void dumplog(struct mesh_state *ms, int tgt) dumplog() argument 417 printk(KERN_DEBUG "mesh_start: %p tgt=%d cmd=", cmd, id); mesh_start_cmd() 883 printk(KERN_ERR "mesh: reselected in phase %d/%d tgt %d\n", reselected() 959 printk(KERN_ERR "mesh: reselected by tgt %d but no cmd!\n", t); reselected() 963 dlog(ms, "resel prev tgt=%d", prev); reselected() 987 int tgt; handle_reset() local 992 for (tgt = 0; tgt < 8; ++tgt) { handle_reset() 993 tp = &ms->tgts[tgt]; handle_reset() 999 ms->tgts[tgt].sdtr_state = do_sdtr; handle_reset() 1000 ms->tgts[tgt].sync_params = ASYNC_PARAMS; handle_reset() 1848 int tgt, minper; mesh_probe() local 1930 for (tgt = 0; tgt < 8; ++tgt) { mesh_probe() 1931 ms->tgts[tgt].sdtr_state = do_sdtr; mesh_probe() 1932 ms->tgts[tgt].sync_params = ASYNC_PARAMS; mesh_probe() 1933 ms->tgts[tgt].current_req = NULL; mesh_probe()
|
H A D | NCR5380.h | 108 #define TCR_ASSERT_REQ 0x08 /* tgt rw assert REQ */ 109 #define TCR_ASSERT_MSG 0x04 /* tgt rw assert MSG */ 110 #define TCR_ASSERT_CD 0x02 /* tgt rw assert CD */ 111 #define TCR_ASSERT_IO 0x01 /* tgt rw assert IO */ 148 * the falling edge of REQ (ini) or ACK (tgt)
|
H A D | qlogicpti.c | 969 int tgt = sdev->id; qlogicpti_slave_configure() local 975 qpti->dev_param[tgt].device_flags |= 0x10; qlogicpti_slave_configure() 977 qpti->dev_param[tgt].synchronous_offset = 0; qlogicpti_slave_configure() 978 qpti->dev_param[tgt].synchronous_period = 0; qlogicpti_slave_configure() 982 qpti->dev_param[tgt].device_flags |= 0x20; qlogicpti_slave_configure() 985 param[1] = (tgt << 8); qlogicpti_slave_configure() 986 param[2] = (qpti->dev_param[tgt].device_flags << 8); qlogicpti_slave_configure() 987 if (qpti->dev_param[tgt].device_flags & 0x10) { qlogicpti_slave_configure() 988 param[3] = (qpti->dev_param[tgt].synchronous_offset << 8) | qlogicpti_slave_configure() 989 qpti->dev_param[tgt].synchronous_period; qlogicpti_slave_configure() 1224 printk(KERN_WARNING "qlogicpti%d: Aborting cmd for tgt[%d] lun[%d]\n", qlogicpti_abort()
|
H A D | megaraid.c | 460 int tgt; mega_get_ldrv_num() local 463 tgt = cmd->device->id; mega_get_ldrv_num() 465 if ( tgt > adapter->this_id ) mega_get_ldrv_num() 466 tgt--; /* we do not get inquires for initiator id */ mega_get_ldrv_num() 468 ldrv_num = (channel * 15) + tgt; mega_get_ldrv_num() 2341 int tgt; proc_show_pdrv() local 2378 for( tgt = 0; tgt <= MAX_TARGET; tgt++ ) { proc_show_pdrv() 2380 i = channel*16 + tgt; proc_show_pdrv() 2386 channel, tgt); proc_show_pdrv() 2391 channel, tgt); proc_show_pdrv() 2396 channel, tgt); proc_show_pdrv() 2401 channel, tgt); proc_show_pdrv() 2406 channel, tgt); proc_show_pdrv() 2416 if( mega_internal_dev_inquiry(adapter, channel, tgt, proc_show_pdrv() 4036 * @tgt - ID of this device 4042 mega_internal_dev_inquiry(adapter_t *adapter, u8 ch, u8 tgt, mega_internal_dev_inquiry() argument 4073 pthru->target = (adapter->flag & BOARD_40LD) ? (ch << 4)|tgt : tgt; mega_internal_dev_inquiry()
|
H A D | xen-scsifront.c | 987 unsigned int hst, chn, tgt, lun; scsifront_do_lun_hotplug() local 1009 "%u:%u:%u:%u", &hst, &chn, &tgt, &lun); scsifront_do_lun_hotplug() 1026 if (scsi_add_device(info->host, chn, tgt, lun)) { scsifront_do_lun_hotplug() 1037 sdev = scsi_device_lookup(info->host, chn, tgt, lun); scsifront_do_lun_hotplug()
|
H A D | dc395x.c | 170 #define MK_RES(drv,did,msg,tgt) ((int)(drv)<<24 | (int)(did)<<16 | (int)(msg)<<8 | (int)(tgt)) 171 #define MK_RES_LNX(drv,did,msg,tgt) ((int)(drv)<<24 | (int)(did)<<16 | (int)(msg)<<8 | (int)(tgt)<<1) 173 #define SET_RES_TARGET(who,tgt) { who &= ~RES_TARGET; who |= (int)(tgt); } 174 #define SET_RES_TARGET_LNX(who,tgt) { who &= ~RES_TARGET_LNX; who |= (int)(tgt) << 1; }
|
H A D | libiscsi.c | 2435 ISCSI_DBG_EH(session, "tgt Reset [sc %p tgt %s]\n", sc, iscsi_eh_target_reset() 2491 ISCSI_DBG_EH(session, "tgt %s reset result = %s\n", session->targetname, iscsi_eh_target_reset()
|
/linux-4.1.27/drivers/staging/unisys/uislib/ |
H A D | uisqueue.c | 228 uisqueue_interlocked_or(unsigned long long __iomem *tgt, uisqueue_interlocked_or() argument 234 j = readq(tgt); uisqueue_interlocked_or() 237 j = cmpxchg((__force unsigned long long *)tgt, i, i | set); uisqueue_interlocked_or() 246 uisqueue_interlocked_and(unsigned long long __iomem *tgt, uisqueue_interlocked_and() argument 252 j = readq(tgt); uisqueue_interlocked_and() 255 j = cmpxchg((__force unsigned long long *)tgt, i, i & set); uisqueue_interlocked_and()
|
/linux-4.1.27/include/linux/netfilter_arp/ |
H A D | arp_tables.h | 4 * src, tgt, src_mask, tgt_mask, arpop, arpop_mask are always stored in
|
/linux-4.1.27/drivers/staging/lustre/lustre/obdclass/ |
H A D | capa.c | 111 hlist_del_init(&ocapa->u.tgt.c_hash); capa_delete() 127 u.tgt.c_hash) cleanup_capa_hash() 157 hlist_for_each_entry(ocapa, head, u.tgt.c_hash) { hlist_for_each_entry() 208 hlist_add_head(&ocapa->u.tgt.c_hash, head); capa_add()
|
H A D | genops.c | 525 otherwise any client connected to the tgt is returned. */ class_find_client_obd()
|
/linux-4.1.27/arch/xtensa/variants/fsf/include/variant/ |
H A D | core.h | 104 #define XCHAL_HW_MIN_VERSION_MAJOR 2200 /* major v of earliest tgt hw */ 105 #define XCHAL_HW_MIN_VERSION_MINOR 0 /* minor v of earliest tgt hw */ 106 #define XCHAL_HW_MAX_VERSION_MAJOR 2200 /* major v of latest tgt hw */ 107 #define XCHAL_HW_MAX_VERSION_MINOR 0 /* minor v of latest tgt hw */
|
/linux-4.1.27/drivers/staging/lustre/lustre/include/ |
H A D | lustre_capa.h | 91 struct target_capa tgt; member in union:obd_capa::__anon10040 212 INIT_HLIST_NODE(&ocapa->u.tgt.c_hash); alloc_capa() 243 hnode = &ocapa->u.tgt.c_hash; capa_put()
|
/linux-4.1.27/drivers/block/rsxx/ |
H A D | dma.c | 115 unsigned int tgt; rsxx_get_dma_tgt() local 117 tgt = (addr8 >> card->_stripe.target_shift) & card->_stripe.target_mask; rsxx_get_dma_tgt() 119 return tgt; rsxx_get_dma_tgt() 696 int tgt; rsxx_dma_queue_bio() local 712 tgt = rsxx_get_dma_tgt(card, addr8); rsxx_dma_queue_bio() 715 st = rsxx_queue_discard(card, &dma_list[tgt], laddr, rsxx_dma_queue_bio() 720 dma_cnt[tgt]++; rsxx_dma_queue_bio() 731 tgt = rsxx_get_dma_tgt(card, addr8); bio_for_each_segment() 737 st = rsxx_queue_dma(card, &dma_list[tgt], bio_for_each_segment() 745 dma_cnt[tgt]++; bio_for_each_segment()
|
/linux-4.1.27/arch/mips/bcm63xx/ |
H A D | irq.c | 79 unsigned int src, tgt; \ 87 for (src = 0, tgt = (width / 32); src < (width / 32); src++) { \ 92 pending[--tgt] = val; \
|
/linux-4.1.27/drivers/staging/lustre/lustre/obdecho/ |
H A D | echo_client.c | 698 struct obd_device *tgt; echo_device_alloc() local 723 tgt = class_name2obd(lustre_cfg_string(cfg, 1)); echo_device_alloc() 724 if (tgt == NULL) { echo_device_alloc() 725 CERROR("Can not find tgt device %s\n", echo_device_alloc() 731 next = tgt->obd_lu_dev; echo_device_alloc() 732 if (!strcmp(tgt->obd_type->typ_name, LUSTRE_MDT_NAME)) { echo_device_alloc() 756 tgt_type_name = tgt->obd_type->typ_name; echo_device_alloc() 2032 struct obd_device *tgt; echo_client_setup() local 2042 tgt = class_name2obd(lustre_cfg_string(lcfg, 1)); echo_client_setup() 2043 if (!tgt || !tgt->obd_attached || !tgt->obd_set_up) { echo_client_setup() 2071 rc = obd_connect(env, &ec->ec_exp, tgt, &echo_uuid, ocd, NULL); echo_client_setup() 2073 /* Turn off pinger because it connects to tgt obd directly. */ echo_client_setup() 2074 spin_lock(&tgt->obd_dev_lock); echo_client_setup() 2076 spin_unlock(&tgt->obd_dev_lock); echo_client_setup()
|
/linux-4.1.27/arch/xtensa/variants/dc232b/include/variant/ |
H A D | core.h | 109 #define XCHAL_HW_MIN_VERSION_MAJOR 2210 /* major v of earliest tgt hw */ 110 #define XCHAL_HW_MIN_VERSION_MINOR 1 /* minor v of earliest tgt hw */ 112 #define XCHAL_HW_MAX_VERSION_MAJOR 2210 /* major v of latest tgt hw */ 113 #define XCHAL_HW_MAX_VERSION_MINOR 1 /* minor v of latest tgt hw */
|
/linux-4.1.27/arch/xtensa/variants/dc233c/include/variant/ |
H A D | core.h | 148 #define XCHAL_HW_MIN_VERSION_MAJOR 2400 /* major v of earliest tgt hw */ 149 #define XCHAL_HW_MIN_VERSION_MINOR 1 /* minor v of earliest tgt hw */ 151 #define XCHAL_HW_MAX_VERSION_MAJOR 2400 /* major v of latest tgt hw */ 152 #define XCHAL_HW_MAX_VERSION_MINOR 1 /* minor v of latest tgt hw */
|
/linux-4.1.27/drivers/xen/ |
H A D | xen-scsiback.c | 80 unsigned int tgt; /* target */ member in struct:ids_tuple 649 (entry->v.tgt == v->tgt) && list_for_each_entry() 673 vir.tgt = ring_req->id; prepare_pending_reqs() 679 pr_debug("the v2p of (chn:%d, tgt:%d, lun:%d) doesn't exist.\n", prepare_pending_reqs() 680 vir.chn, vir.tgt, vir.lun); prepare_pending_reqs() 924 (entry->v.tgt == v->tgt) && list_for_each_entry() 974 (entry->v.tgt == v->tgt) && list_for_each_entry() 1051 &vir.hst, &vir.chn, &vir.tgt, &vir.lun); scsiback_do_1lun_hotplug()
|
/linux-4.1.27/include/uapi/linux/netfilter_arp/ |
H A D | arp_tables.h | 4 * src, tgt, src_mask, tgt_mask, arpop, arpop_mask are always stored in 44 struct in_addr src, tgt; member in struct:arpt_arp
|
/linux-4.1.27/drivers/staging/lustre/lustre/ptlrpc/ |
H A D | sec_config.c | 477 static void target2fsname(const char *tgt, char *fsname, int buflen) target2fsname() argument 482 ptr = strrchr(tgt, '-'); target2fsname() 493 len = strlen(tgt); target2fsname() 495 len = ptr - tgt; target2fsname() 498 memcpy(fsname, tgt, len); target2fsname()
|
/linux-4.1.27/drivers/staging/unisys/include/ |
H A D | uisqueue.h | 77 unsigned long long uisqueue_interlocked_or(unsigned long long __iomem *tgt, 79 unsigned long long uisqueue_interlocked_and(unsigned long long __iomem *tgt,
|
/linux-4.1.27/drivers/crypto/caam/ |
H A D | error.c | 135 idx_str = "jump tgt desc idx"; report_ccb_status() 184 idx_str = "jump tgt desc idx"; report_deco_status()
|
/linux-4.1.27/drivers/block/aoe/ |
H A D | aoecmd.c | 262 tt = d->tgt; /* last used target */ newframe() 278 d->tgt = tt; newframe() 282 if (tt == d->tgt) { /* we've looped and found nada */ newframe() 1450 t = *d->tgt; aoecmd_ata_id() 1496 d->tgt = tt + (d->tgt - d->targets); grow_targets()
|
H A D | aoe.h | 184 struct aoetgt **tgt; /* target in use when working */ member in struct:aoedev
|
H A D | aoedev.c | 475 d->tgt = d->targets; aoedev_by_aoeaddr()
|
/linux-4.1.27/net/core/ |
H A D | skbuff.c | 2609 * @tgt: buffer into which tail data gets added 2614 * the length of the skb, from skb to tgt. Returns number bytes shifted. 2617 * If @tgt runs out of frags, the whole operation is aborted. 2619 * Skb cannot include anything else but paged data while tgt is allowed 2625 int skb_shift(struct sk_buff *tgt, struct sk_buff *skb, int shiftlen) skb_shift() argument 2635 to = skb_shinfo(tgt)->nr_frags; skb_shift() 2642 !skb_can_coalesce(tgt, to, skb_frag_page(fragfrom), skb_shift() 2651 skb_prepare_for_shift(tgt)) skb_shift() 2656 fragto = &skb_shinfo(tgt)->frags[merge]; skb_shift() 2673 if (skb_prepare_for_shift(skb) || skb_prepare_for_shift(tgt)) skb_shift() 2681 fragto = &skb_shinfo(tgt)->frags[to]; skb_shift() 2704 /* Ready to "commit" this state change to tgt */ skb_shift() 2705 skb_shinfo(tgt)->nr_frags = to; skb_shift() 2709 fragto = &skb_shinfo(tgt)->frags[merge]; skb_shift() 2724 /* Most likely the tgt won't ever need its checksum anymore, skb on skb_shift() 2727 tgt->ip_summed = CHECKSUM_PARTIAL; skb_shift() 2734 tgt->len += shiftlen; skb_shift() 2735 tgt->data_len += shiftlen; skb_shift() 2736 tgt->truesize += shiftlen; skb_shift()
|
/linux-4.1.27/drivers/net/ |
H A D | netconsole.c | 61 MODULE_PARM_DESC(netconsole, " netconsole=[src-port]@[src-ip]/[dev],[tgt-port]@<tgt-ip>/[tgt-macaddr]");
|
/linux-4.1.27/drivers/scsi/csiostor/ |
H A D | csio_lnode.h | 194 * new tgt found
|
H A D | csio_mb.c | 292 * @tgt: Turn on target mode. 301 bool wr, bool init, bool tgt, bool cofld, csio_mb_caps_config() 325 if (tgt) csio_mb_caps_config() 300 csio_mb_caps_config(struct csio_hw *hw, struct csio_mb *mbp, uint32_t tmo, bool wr, bool init, bool tgt, bool cofld, void (*cbfn) (struct csio_hw *, struct csio_mb *)) csio_mb_caps_config() argument
|
/linux-4.1.27/drivers/staging/lustre/lustre/llite/ |
H A D | namei.c | 761 const char *tgt, int mode, int rdev, ll_new_node() 771 if (unlikely(tgt != NULL)) ll_new_node() 772 tgt_len = strlen(tgt) + 1; ll_new_node() 783 err = md_create(sbi->ll_md_exp, op_data, tgt, tgt_len, mode, ll_new_node() 760 ll_new_node(struct inode *dir, struct dentry *dentry, const char *tgt, int mode, int rdev, __u32 opc) ll_new_node() argument
|
/linux-4.1.27/drivers/pci/host/ |
H A D | pci-mvebu.c | 847 unsigned int *tgt, mvebu_get_tgt_attr() 854 *tgt = -1; mvebu_get_tgt_attr() 879 *tgt = DT_CPUADDR_TO_TARGET(cpuaddr); mvebu_get_tgt_attr() 1017 dev_err(&pdev->dev, "PCIe%d.%d: cannot get tgt/attr for mem window\n", mvebu_pcie_probe() 845 mvebu_get_tgt_attr(struct device_node *np, int devfn, unsigned long type, unsigned int *tgt, unsigned int *attr) mvebu_get_tgt_attr() argument
|
/linux-4.1.27/arch/mips/net/ |
H A D | bpf_jit.c | 489 static inline u32 b_imm(unsigned int tgt, struct jit_ctx *ctx) b_imm() argument 496 * so tgt is always after pc. tgt is the instruction offset b_imm() 507 return ctx->offsets[tgt] - b_imm()
|
/linux-4.1.27/drivers/scsi/fnic/ |
H A D | fnic_res.c | 162 "vNIC flags 0x%x luns per tgt %d\n", fnic_get_vnic_config()
|
/linux-4.1.27/drivers/crypto/ |
H A D | n2_core.c | 1745 u64 tgt = mdesc_arc_target(mdesc, arc); mdesc_for_each_arc() local 1746 const char *name = mdesc_node_name(mdesc, tgt); mdesc_for_each_arc() 1751 id = mdesc_get_property(mdesc, tgt, "id", NULL); mdesc_for_each_arc()
|
/linux-4.1.27/drivers/staging/lustre/lustre/mdc/ |
H A D | mdc_reint.c | 260 * tgt, for symlinks or lov MD data. mdc_create()
|
/linux-4.1.27/fs/gfs2/ |
H A D | trace_gfs2.h | 117 TP_printk("%u,%u glock %d:%lld state %s to %s tgt:%s dmt:%s flags:%s",
|
/linux-4.1.27/arch/arm/net/ |
H A D | bpf_jit_32.c | 388 static inline u32 b_imm(unsigned tgt, struct jit_ctx *ctx) b_imm() argument 398 imm = ctx->offsets[tgt] + ctx->prologue_bytes - (ctx->idx * 4 + 8); b_imm()
|
/linux-4.1.27/drivers/media/usb/gspca/ |
H A D | stk1135.c | 289 { 0x22e, 0x0c3c }, { 0x267, 0x1010 }, /* AE tgt ctl, gain lim */ stk1135_configure_mt9m112()
|
/linux-4.1.27/drivers/media/usb/pvrusb2/ |
H A D | pvrusb2-io.c | 378 " poolCheck stream=%p cur=%d tgt=%d", pvr2_stream_achieve_buffer_count()
|
/linux-4.1.27/fs/btrfs/ |
H A D | dev-replace.c | 144 * allow 'btrfs dev replace_cancel' if src/tgt device is btrfs_init_dev_replace()
|
H A D | volumes.c | 4911 /* plus the variable array for the tgt dev */ alloc_btrfs_bio() 4914 * plus the raid_map, which includes both the tgt dev alloc_btrfs_bio()
|
/linux-4.1.27/net/ipv4/netfilter/ |
H A D | arp_tables.c | 166 FWINV(((tgt_ipaddr & arpinfo->tmsk.s_addr) != arpinfo->tgt.s_addr), arp_packet_match() 178 &arpinfo->tgt.s_addr, arp_packet_match()
|
/linux-4.1.27/drivers/scsi/lpfc/ |
H A D | lpfc.h | 61 #define LPFC_TGTQ_INTERVAL 40000 /* Min amount of time between tgt
|
H A D | lpfc_scsi.c | 3713 "tgt x%x lun x%llx cmnd x%x rsplen x%x\n", lpfc_handle_fcp_err() 3724 "tgt x%x lun x%llx cmnd x%x rspInfo3 x%x\n", lpfc_handle_fcp_err()
|
H A D | lpfc_attr.c | 4534 "FCP2 devices [0] - issue tgt reset, [1] - no tgt reset");
|
/linux-4.1.27/drivers/net/wireless/iwlegacy/ |
H A D | 4965.c | 1184 D_TXPOWER("rate %d sat %d reg %d usr %d tgt %d\n", i, il4965_fill_txpower_tbl()
|
/linux-4.1.27/arch/powerpc/kvm/ |
H A D | book3s_xics.c | 820 XICS_DBG("XICS_RM: H_%x completing, act: %x state: %lx tgt: %p\n", kvmppc_xics_rm_complete()
|
/linux-4.1.27/drivers/scsi/libfc/ |
H A D | fc_fcp.c | 917 FC_FCP_DBG(fsp, "tgt %6.6x xfer len %zx greater than expected, " fc_fcp_resp()
|
/linux-4.1.27/drivers/edac/ |
H A D | sb_edac.c | 1110 edac_dbg(0, "CH#%d RIR#%d INTL#%d, offset %u.%03u GB (0x%016Lx), tgt: %d, reg=0x%08x\n", get_memory_layout()
|
/linux-4.1.27/drivers/staging/lustre/lustre/include/lustre/ |
H A D | lustre_idl.h | 1056 static inline void lustre_handle_copy(struct lustre_handle *tgt, lustre_handle_copy() argument 1059 tgt->cookie = src->cookie; lustre_handle_copy()
|
/linux-4.1.27/kernel/locking/ |
H A D | lockdep.c | 1106 struct held_lock *tgt, print_circular_lock_scenario() 1110 struct lock_class *target = hlock_class(tgt); print_circular_lock_scenario() 1105 print_circular_lock_scenario(struct held_lock *src, struct held_lock *tgt, struct lock_list *prt) print_circular_lock_scenario() argument
|
/linux-4.1.27/drivers/net/wireless/b43/ |
H A D | phy_g.c | 1973 "measuring failed. (cur=%d, tgt=%d). Disabling TX power " b43_phy_init_pctl()
|
/linux-4.1.27/include/linux/ |
H A D | skbuff.h | 2703 int skb_shift(struct sk_buff *tgt, struct sk_buff *skb, int shiftlen);
|
/linux-4.1.27/arch/powerpc/xmon/ |
H A D | ppc-opc.c | 3344 { "tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, { RA, RB } },
|