qedi 130 drivers/scsi/qedi/qedi.h struct qedi_ctx *qedi; qedi 171 drivers/scsi/qedi/qedi.h struct qedi_ctx *qedi; qedi 362 drivers/scsi/qedi/qedi.h struct qedi_ctx *qedi; qedi 11 drivers/scsi/qedi/qedi_dbg.c qedi_dbg_err(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 22 drivers/scsi/qedi/qedi_dbg.c if (likely(qedi) && likely(qedi->pdev)) qedi 23 drivers/scsi/qedi/qedi_dbg.c pr_err("[%s]:[%s:%d]:%d: %pV", dev_name(&qedi->pdev->dev), qedi 24 drivers/scsi/qedi/qedi_dbg.c func, line, qedi->host_no, &vaf); qedi 32 drivers/scsi/qedi/qedi_dbg.c qedi_dbg_warn(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 46 drivers/scsi/qedi/qedi_dbg.c if (likely(qedi) && likely(qedi->pdev)) qedi 47 drivers/scsi/qedi/qedi_dbg.c pr_warn("[%s]:[%s:%d]:%d: %pV", dev_name(&qedi->pdev->dev), qedi 48 drivers/scsi/qedi/qedi_dbg.c func, line, qedi->host_no, &vaf); qedi 57 drivers/scsi/qedi/qedi_dbg.c qedi_dbg_notice(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 71 drivers/scsi/qedi/qedi_dbg.c if (likely(qedi) && likely(qedi->pdev)) qedi 73 drivers/scsi/qedi/qedi_dbg.c dev_name(&qedi->pdev->dev), func, line, qedi 74 drivers/scsi/qedi/qedi_dbg.c qedi->host_no, &vaf); qedi 83 drivers/scsi/qedi/qedi_dbg.c qedi_dbg_info(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 97 drivers/scsi/qedi/qedi_dbg.c if (likely(qedi) && likely(qedi->pdev)) qedi 98 drivers/scsi/qedi/qedi_dbg.c pr_info("[%s]:[%s:%d]:%d: %pV", dev_name(&qedi->pdev->dev), qedi 99 drivers/scsi/qedi/qedi_dbg.c func, line, qedi->host_no, &vaf); qedi 82 drivers/scsi/qedi/qedi_dbg.h void qedi_dbg_err(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 84 drivers/scsi/qedi/qedi_dbg.h void qedi_dbg_warn(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 86 drivers/scsi/qedi/qedi_dbg.h void qedi_dbg_notice(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 88 drivers/scsi/qedi/qedi_dbg.h void qedi_dbg_info(struct qedi_dbg_ctx *qedi, const char *func, u32 line, qedi 106 drivers/scsi/qedi/qedi_dbg.h ssize_t (*oper_func)(struct qedi_dbg_ctx *qedi); qedi 132 drivers/scsi/qedi/qedi_dbg.h void qedi_dbg_host_init(struct qedi_dbg_ctx *qedi, qedi 135 drivers/scsi/qedi/qedi_dbg.h void qedi_dbg_host_exit(struct qedi_dbg_ctx *qedi); qedi 18 drivers/scsi/qedi/qedi_debugfs.c qedi_dbg_host_init(struct qedi_dbg_ctx *qedi, qedi 24 drivers/scsi/qedi/qedi_debugfs.c sprintf(host_dirname, "host%u", qedi->host_no); qedi 25 drivers/scsi/qedi/qedi_debugfs.c qedi->bdf_dentry = debugfs_create_dir(host_dirname, qedi_dbg_root); qedi 31 drivers/scsi/qedi/qedi_debugfs.c debugfs_create_file(dops->name, 0600, qedi->bdf_dentry, qedi, qedi 39 drivers/scsi/qedi/qedi_debugfs.c qedi_dbg_host_exit(struct qedi_dbg_ctx *qedi) qedi 41 drivers/scsi/qedi/qedi_debugfs.c debugfs_remove_recursive(qedi->bdf_dentry); qedi 42 drivers/scsi/qedi/qedi_debugfs.c qedi->bdf_dentry = NULL; qedi 143 drivers/scsi/qedi/qedi_debugfs.c struct qedi_ctx *qedi = s->private; qedi 148 drivers/scsi/qedi/qedi_debugfs.c for (id = 0; id < MIN_NUM_CPUS_MSIX(qedi); id++) { qedi 149 drivers/scsi/qedi/qedi_debugfs.c spin_lock_irqsave(&qedi->hba_lock, flags); qedi 151 drivers/scsi/qedi/qedi_debugfs.c fp = &qedi->fp_array[id]; qedi 157 drivers/scsi/qedi/qedi_debugfs.c que = qedi->global_queues[fp->sb_id]; qedi 161 drivers/scsi/qedi/qedi_debugfs.c spin_unlock_irqrestore(&qedi->hba_lock, flags); qedi 170 drivers/scsi/qedi/qedi_debugfs.c struct qedi_ctx *qedi = container_of(qedi_dbg, struct qedi_ctx, qedi 173 drivers/scsi/qedi/qedi_debugfs.c return single_open(file, qedi_gbl_ctx_show, qedi); qedi 180 drivers/scsi/qedi/qedi_debugfs.c struct qedi_ctx *qedi = s->private; qedi 185 drivers/scsi/qedi/qedi_debugfs.c spin_lock_irqsave(&qedi->io_trace_lock, flags); qedi 186 drivers/scsi/qedi/qedi_debugfs.c idx = qedi->io_trace_idx; qedi 188 drivers/scsi/qedi/qedi_debugfs.c io_log = &qedi->io_trace_buf[idx]; qedi 209 drivers/scsi/qedi/qedi_debugfs.c spin_unlock_irqrestore(&qedi->io_trace_lock, flags); qedi 217 drivers/scsi/qedi/qedi_debugfs.c struct qedi_ctx *qedi = container_of(qedi_dbg, struct qedi_ctx, qedi 220 drivers/scsi/qedi/qedi_debugfs.c return single_open(file, qedi_io_trace_show, qedi); qedi 224 drivers/scsi/qedi/qedi_debugfs.c qedi_dbg_fileops_seq(qedi, gbl_ctx), qedi 225 drivers/scsi/qedi/qedi_debugfs.c qedi_dbg_fileops(qedi, do_not_recover), qedi 226 drivers/scsi/qedi/qedi_debugfs.c qedi_dbg_fileops_seq(qedi, io_trace), qedi 30 drivers/scsi/qedi/qedi_fw.c static void qedi_process_logout_resp(struct qedi_ctx *qedi, qedi 58 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, qedi 67 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 74 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, cmd->task_id); qedi 80 drivers/scsi/qedi/qedi_fw.c static void qedi_process_text_resp(struct qedi_ctx *qedi, qedi 94 drivers/scsi/qedi/qedi_fw.c task_ctx = qedi_get_task_mem(&qedi->tasks, cmd->task_id); qedi 121 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, qedi 130 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 137 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, cmd->task_id); qedi 151 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 161 drivers/scsi/qedi/qedi_fw.c rval = qedi_cleanup_all_io(qedi, qedi_conn, qedi_cmd->task, true); qedi 163 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, qedi_cmd->task_id); qedi 169 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, qedi_cmd->task_id); qedi 180 drivers/scsi/qedi/qedi_fw.c static void qedi_process_tmf_resp(struct qedi_ctx *qedi, qedi 198 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, qedi 238 drivers/scsi/qedi/qedi_fw.c queue_work(qedi->tmf_thread, &qedi_cmd->tmf_work); qedi 242 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, qedi_cmd->task_id); qedi 251 drivers/scsi/qedi/qedi_fw.c static void qedi_process_login_resp(struct qedi_ctx *qedi, qedi 267 drivers/scsi/qedi/qedi_fw.c task_ctx = qedi_get_task_mem(&qedi->tasks, cmd->task_id); qedi 305 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, qedi 309 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, cmd->task_id); qedi 312 drivers/scsi/qedi/qedi_fw.c static void qedi_get_rq_bdq_buf(struct qedi_ctx *qedi, qedi 318 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 320 drivers/scsi/qedi/qedi_fw.c len, qedi->bdq_prod_idx, qedi 321 drivers/scsi/qedi/qedi_fw.c (qedi->bdq_prod_idx % qedi->rq_num_entries)); qedi 326 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 332 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 335 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 341 drivers/scsi/qedi/qedi_fw.c memcpy(ptr, (void *)qedi->bdq[idx].buf_addr, len); qedi 351 drivers/scsi/qedi/qedi_fw.c static void qedi_put_rq_bdq_buf(struct qedi_ctx *qedi, qedi 362 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 368 drivers/scsi/qedi/qedi_fw.c pbl = (struct scsi_bd *)qedi->bdq_pbl; qedi 369 drivers/scsi/qedi/qedi_fw.c pbl += (qedi->bdq_prod_idx % qedi->rq_num_entries); qedi 370 drivers/scsi/qedi/qedi_fw.c pbl->address.hi = cpu_to_le32(QEDI_U64_HI(qedi->bdq[idx].buf_dma)); qedi 371 drivers/scsi/qedi/qedi_fw.c pbl->address.lo = cpu_to_le32(QEDI_U64_LO(qedi->bdq[idx].buf_dma)); qedi 372 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 381 drivers/scsi/qedi/qedi_fw.c qedi->bdq_prod_idx += count; qedi 383 drivers/scsi/qedi/qedi_fw.c writew(qedi->bdq_prod_idx, qedi->bdq_primary_prod); qedi 384 drivers/scsi/qedi/qedi_fw.c tmp = readw(qedi->bdq_primary_prod); qedi 386 drivers/scsi/qedi/qedi_fw.c writew(qedi->bdq_prod_idx, qedi->bdq_secondary_prod); qedi 387 drivers/scsi/qedi/qedi_fw.c tmp = readw(qedi->bdq_secondary_prod); qedi 390 drivers/scsi/qedi/qedi_fw.c static void qedi_unsol_pdu_adjust_bdq(struct qedi_ctx *qedi, qedi 395 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 398 drivers/scsi/qedi/qedi_fw.c qedi_get_rq_bdq_buf(qedi, cqe, bdq_data, pdu_len); qedi 399 drivers/scsi/qedi/qedi_fw.c qedi_put_rq_bdq_buf(qedi, cqe, (num_bdqs + 1)); qedi 402 drivers/scsi/qedi/qedi_fw.c static int qedi_process_nopin_mesg(struct qedi_ctx *qedi, qedi 434 drivers/scsi/qedi/qedi_fw.c spin_lock_irqsave(&qedi->hba_lock, flags); qedi 435 drivers/scsi/qedi/qedi_fw.c qedi_unsol_pdu_adjust_bdq(qedi, &cqe->cqe_unsolicited, qedi 439 drivers/scsi/qedi/qedi_fw.c spin_unlock_irqrestore(&qedi->hba_lock, flags); qedi 452 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, qedi 464 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, cmd->task_id); qedi 474 drivers/scsi/qedi/qedi_fw.c static void qedi_process_async_mesg(struct qedi_ctx *qedi, qedi 497 drivers/scsi/qedi/qedi_fw.c spin_lock_irqsave(&qedi->hba_lock, flags); qedi 498 drivers/scsi/qedi/qedi_fw.c qedi_unsol_pdu_adjust_bdq(qedi, &cqe->cqe_unsolicited, qedi 500 drivers/scsi/qedi/qedi_fw.c spin_unlock_irqrestore(&qedi->hba_lock, flags); qedi 528 drivers/scsi/qedi/qedi_fw.c static void qedi_process_reject_mesg(struct qedi_ctx *qedi, qedi 548 drivers/scsi/qedi/qedi_fw.c spin_lock_irqsave(&qedi->hba_lock, flags); qedi 549 drivers/scsi/qedi/qedi_fw.c qedi_unsol_pdu_adjust_bdq(qedi, &cqe->cqe_unsolicited, qedi 551 drivers/scsi/qedi/qedi_fw.c spin_unlock_irqrestore(&qedi->hba_lock, flags); qedi 570 drivers/scsi/qedi/qedi_fw.c static void qedi_scsi_completion(struct qedi_ctx *qedi, qedi 586 drivers/scsi/qedi/qedi_fw.c qedi_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid]; qedi 597 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, "sc_cmd is NULL!\n"); qedi 602 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, qedi 608 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, qedi 615 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, qedi 644 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 662 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, qedi 667 drivers/scsi/qedi/qedi_fw.c qedi_trace_io(qedi, task, cmd->task_id, QEDI_IO_TRACE_RSP); qedi 669 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, cmd->task_id); qedi 676 drivers/scsi/qedi/qedi_fw.c static void qedi_mtask_completion(struct qedi_ctx *qedi, qedi 690 drivers/scsi/qedi/qedi_fw.c qedi_scsi_completion(qedi, cqe, task, iscsi_conn); qedi 693 drivers/scsi/qedi/qedi_fw.c qedi_process_login_resp(qedi, cqe, task, conn); qedi 696 drivers/scsi/qedi/qedi_fw.c qedi_process_tmf_resp(qedi, cqe, task, conn); qedi 699 drivers/scsi/qedi/qedi_fw.c qedi_process_text_resp(qedi, cqe, task, conn); qedi 702 drivers/scsi/qedi/qedi_fw.c qedi_process_logout_resp(qedi, cqe, task, conn); qedi 705 drivers/scsi/qedi/qedi_fw.c qedi_process_nopin_mesg(qedi, cqe, task, conn, que_idx); qedi 708 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "unknown opcode\n"); qedi 712 drivers/scsi/qedi/qedi_fw.c static void qedi_process_nopin_local_cmpl(struct qedi_ctx *qedi, qedi 721 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_UNSOL, qedi 726 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi, cmd->task_id); qedi 733 drivers/scsi/qedi/qedi_fw.c static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, qedi 752 drivers/scsi/qedi/qedi_fw.c qedi_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid]; qedi 754 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 767 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 785 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 800 drivers/scsi/qedi/qedi_fw.c QEDI_NOTICE(&qedi->dbg_ctx, qedi 809 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 817 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi_conn->qedi, rtid); qedi 828 drivers/scsi/qedi/qedi_fw.c qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); qedi 831 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 838 drivers/scsi/qedi/qedi_fw.c QEDI_NOTICE(&qedi->dbg_ctx, qedi 846 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, qedi 849 drivers/scsi/qedi/qedi_fw.c qedi_clear_task_idx(qedi_conn->qedi, cqe->itid); qedi 852 drivers/scsi/qedi/qedi_fw.c qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); qedi 855 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, qedi 863 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = work->qedi; qedi 881 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 886 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, "Invalid CqE type\n"); qedi 891 drivers/scsi/qedi/qedi_fw.c q_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid]; qedi 893 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, qedi 914 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, "task is NULL\n"); qedi 922 drivers/scsi/qedi/qedi_fw.c qedi_process_nopin_local_cmpl(qedi, &cqe->cqe_solicited, qedi 928 drivers/scsi/qedi/qedi_fw.c qedi_mtask_completion(qedi, cqe, task, q_conn, que_idx); qedi 934 drivers/scsi/qedi/qedi_fw.c qedi_process_nopin_mesg(qedi, cqe, task, q_conn, qedi 938 drivers/scsi/qedi/qedi_fw.c qedi_process_async_mesg(qedi, cqe, task, q_conn, qedi 942 drivers/scsi/qedi/qedi_fw.c qedi_process_reject_mesg(qedi, cqe, task, q_conn, qedi 948 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "Dummy CqE\n"); qedi 951 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "CleanUp CqE\n"); qedi 952 drivers/scsi/qedi/qedi_fw.c qedi_process_cmd_cleanup_resp(qedi, &cqe->cqe_solicited, task, qedi 956 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "Error cqe.\n"); qedi 983 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_MP_REQ, qedi 1014 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1028 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1033 drivers/scsi/qedi/qedi_fw.c (struct e4_iscsi_task_context *)qedi_get_task_mem(&qedi->tasks, qedi 1054 drivers/scsi/qedi/qedi_fw.c qedi_update_itt_map(qedi, tid, task->itt, qedi_cmd); qedi 1118 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1129 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1134 drivers/scsi/qedi/qedi_fw.c (struct e4_iscsi_task_context *)qedi_get_task_mem(&qedi->tasks, qedi 1148 drivers/scsi/qedi/qedi_fw.c qedi_update_itt_map(qedi, tid, task->itt, qedi_cmd); qedi 1182 drivers/scsi/qedi/qedi_fw.c int qedi_cleanup_all_io(struct qedi_ctx *qedi, struct qedi_conn *qedi_conn, qedi 1208 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1226 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1241 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, qedi 1251 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1262 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1271 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1277 drivers/scsi/qedi/qedi_fw.c iscsi_host_for_each_session(qedi->shost, qedi 1279 drivers/scsi/qedi/qedi_fw.c qedi_ops->common->drain(qedi->cdev); qedi 1286 drivers/scsi/qedi/qedi_fw.c iscsi_host_for_each_session(qedi->shost, qedi 1291 drivers/scsi/qedi/qedi_fw.c iscsi_host_for_each_session(qedi->shost, qedi 1297 drivers/scsi/qedi/qedi_fw.c void qedi_clearsq(struct qedi_ctx *qedi, struct qedi_conn *qedi_conn, qedi 1308 drivers/scsi/qedi/qedi_fw.c QEDI_WARN(&qedi->dbg_ctx, qedi 1314 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1318 drivers/scsi/qedi/qedi_fw.c qedi_ops->clear_sq(qedi->cdev, qedi_ep->handle); qedi 1320 drivers/scsi/qedi/qedi_fw.c rval = qedi_cleanup_all_io(qedi, qedi_conn, task, true); qedi 1322 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, qedi 1329 drivers/scsi/qedi/qedi_fw.c static int qedi_wait_for_cleanup_request(struct qedi_ctx *qedi, qedi 1348 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1362 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1378 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "Task already completed\n"); qedi 1383 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1389 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "DONT SEND CLEANUP/ABORT %d\n", qedi 1396 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "Memory allocation failed\n"); qedi 1406 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 1417 drivers/scsi/qedi/qedi_fw.c rval = qedi_wait_for_cleanup_request(qedi, qedi_conn, ctask, qedi_cmd, qedi 1420 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1426 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1428 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "Invalid tid, cid=0x%x\n", qedi 1462 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1481 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1486 drivers/scsi/qedi/qedi_fw.c (struct e4_iscsi_task_context *)qedi_get_task_mem(&qedi->tasks, qedi 1496 drivers/scsi/qedi/qedi_fw.c qedi_update_itt_map(qedi, tid, mtask->itt, qedi_cmd); qedi 1508 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, qedi 1555 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1568 drivers/scsi/qedi/qedi_fw.c queue_work(qedi->tmf_thread, &qedi_cmd->tmf_work); qedi 1576 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1578 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "Invalid tid, cid=0x%x\n", qedi 1587 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, "Invalid tmf, cid=0x%x\n", qedi 1603 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1619 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1624 drivers/scsi/qedi/qedi_fw.c (struct e4_iscsi_task_context *)qedi_get_task_mem(&qedi->tasks, qedi 1639 drivers/scsi/qedi/qedi_fw.c qedi_update_itt_map(qedi, tid, task->itt, qedi_cmd); qedi 1702 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = qedi_conn->qedi; qedi 1718 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 1723 drivers/scsi/qedi/qedi_fw.c (struct e4_iscsi_task_context *)qedi_get_task_mem(&qedi->tasks, qedi 1745 drivers/scsi/qedi/qedi_fw.c qedi_update_itt_map(qedi, tid, task->itt, qedi_cmd); qedi 1827 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&cmd->conn->qedi->dbg_ctx, QEDI_LOG_IO, qedi 1838 drivers/scsi/qedi/qedi_fw.c static int qedi_map_scsi_sg(struct qedi_ctx *qedi, struct qedi_cmd *cmd) qedi 1853 drivers/scsi/qedi/qedi_fw.c sg_count = dma_map_sg(&qedi->pdev->dev, scsi_sglist(sc), qedi 1869 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO, qedi 1905 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO, "sg[%d] size=0x%x", qedi 1921 drivers/scsi/qedi/qedi_fw.c QEDI_ERR(&qedi->dbg_ctx, qedi 1925 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO, "byte_count = %d\n", qedi 1939 drivers/scsi/qedi/qedi_fw.c bd_count = qedi_map_scsi_sg(cmd->conn->qedi, cmd); qedi 1973 drivers/scsi/qedi/qedi_fw.c void qedi_trace_io(struct qedi_ctx *qedi, struct iscsi_task *task, qedi 1982 drivers/scsi/qedi/qedi_fw.c spin_lock_irqsave(&qedi->io_trace_lock, flags); qedi 1984 drivers/scsi/qedi/qedi_fw.c io_log = &qedi->io_trace_buf[qedi->io_trace_idx]; qedi 1996 drivers/scsi/qedi/qedi_fw.c io_log->fast_sgs = qedi->fast_sgls; qedi 1997 drivers/scsi/qedi/qedi_fw.c io_log->cached_sgs = qedi->cached_sgls; qedi 1998 drivers/scsi/qedi/qedi_fw.c io_log->slow_sgs = qedi->slow_sgls; qedi 1999 drivers/scsi/qedi/qedi_fw.c io_log->cached_sge = qedi->use_cached_sge; qedi 2000 drivers/scsi/qedi/qedi_fw.c io_log->slow_sge = qedi->use_slow_sge; qedi 2001 drivers/scsi/qedi/qedi_fw.c io_log->fast_sge = qedi->use_fast_sge; qedi 2008 drivers/scsi/qedi/qedi_fw.c io_log->req_cpu = smp_processor_id() % qedi->num_queues; qedi 2012 drivers/scsi/qedi/qedi_fw.c io_log->req_cpu = smp_processor_id() % qedi->num_queues; qedi 2013 drivers/scsi/qedi/qedi_fw.c io_log->intr_cpu = qedi->intr_cpu; qedi 2017 drivers/scsi/qedi/qedi_fw.c qedi->io_trace_idx++; qedi 2018 drivers/scsi/qedi/qedi_fw.c if (qedi->io_trace_idx == QEDI_IO_TRACE_SIZE) qedi 2019 drivers/scsi/qedi/qedi_fw.c qedi->io_trace_idx = 0; qedi 2021 drivers/scsi/qedi/qedi_fw.c qedi->use_cached_sge = false; qedi 2022 drivers/scsi/qedi/qedi_fw.c qedi->use_slow_sge = false; qedi 2023 drivers/scsi/qedi/qedi_fw.c qedi->use_fast_sge = false; qedi 2025 drivers/scsi/qedi/qedi_fw.c spin_unlock_irqrestore(&qedi->io_trace_lock, flags); qedi 2033 drivers/scsi/qedi/qedi_fw.c struct qedi_ctx *qedi = iscsi_host_priv(shost); qedi 2063 drivers/scsi/qedi/qedi_fw.c tid = qedi_get_task_idx(qedi); qedi 2068 drivers/scsi/qedi/qedi_fw.c (struct e4_iscsi_task_context *)qedi_get_task_mem(&qedi->tasks, qedi 2081 drivers/scsi/qedi/qedi_fw.c cq_idx = smp_processor_id() % qedi->num_queues; qedi 2100 drivers/scsi/qedi/qedi_fw.c qedi_update_itt_map(qedi, tid, task->itt, cmd); qedi 2155 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO, qedi 2198 drivers/scsi/qedi/qedi_fw.c QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_SCSI_TM, qedi 27 drivers/scsi/qedi/qedi_gbl.h int qedi_alloc_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep); qedi 28 drivers/scsi/qedi/qedi_gbl.h void qedi_free_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep); qedi 42 drivers/scsi/qedi/qedi_gbl.h int qedi_get_task_idx(struct qedi_ctx *qedi); qedi 43 drivers/scsi/qedi/qedi_gbl.h void qedi_clear_task_idx(struct qedi_ctx *qedi, int idx); qedi 47 drivers/scsi/qedi/qedi_gbl.h void qedi_update_itt_map(struct qedi_ctx *qedi, u32 tid, u32 proto_itt, qedi 49 drivers/scsi/qedi/qedi_gbl.h void qedi_get_proto_itt(struct qedi_ctx *qedi, u32 tid, u32 *proto_itt); qedi 50 drivers/scsi/qedi/qedi_gbl.h void qedi_get_task_tid(struct qedi_ctx *qedi, u32 itt, int16_t *tid); qedi 53 drivers/scsi/qedi/qedi_gbl.h void qedi_start_conn_recovery(struct qedi_ctx *qedi, qedi 55 drivers/scsi/qedi/qedi_gbl.h struct qedi_conn *qedi_get_conn_from_id(struct qedi_ctx *qedi, u32 iscsi_cid); qedi 60 drivers/scsi/qedi/qedi_gbl.h void qedi_reset_host_mtu(struct qedi_ctx *qedi, u16 mtu); qedi 61 drivers/scsi/qedi/qedi_gbl.h int qedi_recover_all_conns(struct qedi_ctx *qedi); qedi 63 drivers/scsi/qedi/qedi_gbl.h int qedi_cleanup_all_io(struct qedi_ctx *qedi, qedi 66 drivers/scsi/qedi/qedi_gbl.h void qedi_trace_io(struct qedi_ctx *qedi, struct iscsi_task *task, qedi 71 drivers/scsi/qedi/qedi_gbl.h int qedi_create_sysfs_ctx_attr(struct qedi_ctx *qedi); qedi 72 drivers/scsi/qedi/qedi_gbl.h void qedi_remove_sysfs_ctx_attr(struct qedi_ctx *qedi); qedi 73 drivers/scsi/qedi/qedi_gbl.h void qedi_clearsq(struct qedi_ctx *qedi, qedi 17 drivers/scsi/qedi/qedi_iscsi.c int qedi_recover_all_conns(struct qedi_ctx *qedi) qedi 22 drivers/scsi/qedi/qedi_iscsi.c for (i = 0; i < qedi->max_active_conns; i++) { qedi 23 drivers/scsi/qedi/qedi_iscsi.c qedi_conn = qedi_get_conn_from_id(qedi, i); qedi 27 drivers/scsi/qedi/qedi_iscsi.c qedi_start_conn_recovery(qedi, qedi_conn); qedi 36 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 38 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 40 drivers/scsi/qedi/qedi_iscsi.c return qedi_recover_all_conns(qedi); qedi 64 drivers/scsi/qedi/qedi_iscsi.c static void qedi_conn_free_login_resources(struct qedi_ctx *qedi, qedi 68 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, QEDI_PAGE_SIZE, qedi 75 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, QEDI_PAGE_SIZE, qedi 82 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, qedi 90 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, qedi 98 drivers/scsi/qedi/qedi_iscsi.c static int qedi_conn_alloc_login_resources(struct qedi_ctx *qedi, qedi 102 drivers/scsi/qedi/qedi_iscsi.c dma_alloc_coherent(&qedi->pdev->dev, qedi 113 drivers/scsi/qedi/qedi_iscsi.c dma_alloc_coherent(&qedi->pdev->dev, qedi 124 drivers/scsi/qedi/qedi_iscsi.c dma_alloc_coherent(&qedi->pdev->dev, QEDI_PAGE_SIZE, qedi 130 drivers/scsi/qedi/qedi_iscsi.c dma_alloc_coherent(&qedi->pdev->dev, QEDI_PAGE_SIZE, qedi 136 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SESS, qedi 142 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, QEDI_PAGE_SIZE, qedi 148 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, ISCSI_DEF_MAX_RECV_SEG_LEN, qedi 153 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, ISCSI_DEF_MAX_RECV_SEG_LEN, qedi 163 drivers/scsi/qedi/qedi_iscsi.c static void qedi_destroy_cmd_pool(struct qedi_ctx *qedi, qedi 173 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, qedi 180 drivers/scsi/qedi/qedi_iscsi.c dma_free_coherent(&qedi->pdev->dev, qedi 187 drivers/scsi/qedi/qedi_iscsi.c static int qedi_alloc_sget(struct qedi_ctx *qedi, struct iscsi_session *session, qedi 193 drivers/scsi/qedi/qedi_iscsi.c io->sge_tbl = dma_alloc_coherent(&qedi->pdev->dev, qedi 207 drivers/scsi/qedi/qedi_iscsi.c static int qedi_setup_cmd_pool(struct qedi_ctx *qedi, qedi 219 drivers/scsi/qedi/qedi_iscsi.c if (qedi_alloc_sget(qedi, session, cmd)) qedi 222 drivers/scsi/qedi/qedi_iscsi.c cmd->sense_buffer = dma_alloc_coherent(&qedi->pdev->dev, qedi 233 drivers/scsi/qedi/qedi_iscsi.c qedi_destroy_cmd_pool(qedi, session); qedi 243 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 250 drivers/scsi/qedi/qedi_iscsi.c shost = qedi_ep->qedi->shost; qedi 251 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 253 drivers/scsi/qedi/qedi_iscsi.c if (cmds_max > qedi->max_sqes) qedi 254 drivers/scsi/qedi/qedi_iscsi.c cmds_max = qedi->max_sqes; qedi 262 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 267 drivers/scsi/qedi/qedi_iscsi.c if (qedi_setup_cmd_pool(qedi, cls_session->dd_data)) { qedi 268 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 284 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi = iscsi_host_priv(shost); qedi 286 drivers/scsi/qedi/qedi_iscsi.c qedi_destroy_cmd_pool(qedi, session); qedi 294 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi = iscsi_host_priv(shost); qedi 302 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 311 drivers/scsi/qedi/qedi_iscsi.c qedi_conn->qedi = qedi; qedi 317 drivers/scsi/qedi/qedi_iscsi.c if (qedi_conn_alloc_login_resources(qedi, qedi_conn)) { qedi 341 drivers/scsi/qedi/qedi_iscsi.c static int qedi_bind_conn_to_iscsi_cid(struct qedi_ctx *qedi, qedi 346 drivers/scsi/qedi/qedi_iscsi.c if (qedi->cid_que.conn_cid_tbl[iscsi_cid]) { qedi 353 drivers/scsi/qedi/qedi_iscsi.c qedi->cid_que.conn_cid_tbl[iscsi_cid] = qedi_conn; qedi 357 drivers/scsi/qedi/qedi_iscsi.c struct qedi_conn *qedi_get_conn_from_id(struct qedi_ctx *qedi, u32 iscsi_cid) qedi 359 drivers/scsi/qedi/qedi_iscsi.c if (!qedi->cid_que.conn_cid_tbl) { qedi 360 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "missing conn<->cid table\n"); qedi 363 drivers/scsi/qedi/qedi_iscsi.c } else if (iscsi_cid >= qedi->max_active_conns) { qedi 364 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "wrong cid #%d\n", iscsi_cid); qedi 367 drivers/scsi/qedi/qedi_iscsi.c return qedi->cid_que.conn_cid_tbl[iscsi_cid]; qedi 377 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi = iscsi_host_priv(shost); qedi 400 drivers/scsi/qedi/qedi_iscsi.c if (qedi_bind_conn_to_iscsi_cid(qedi, qedi_conn)) qedi 409 drivers/scsi/qedi/qedi_iscsi.c static int qedi_iscsi_update_conn(struct qedi_ctx *qedi, qedi 422 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "memory alloc failed\n"); qedi 449 drivers/scsi/qedi/qedi_iscsi.c rval = qedi_ops->update_conn(qedi->cdev, qedi_ep->handle, qedi 453 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "Could not update connection\n"); qedi 480 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi = qedi_ep->qedi; qedi 487 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 500 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 510 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 527 drivers/scsi/qedi/qedi_iscsi.c conn_info->default_cq = (qedi_ep->fw_cid % qedi->num_queues); qedi 554 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 558 drivers/scsi/qedi/qedi_iscsi.c rval = qedi_ops->offload_conn(qedi->cdev, qedi_ep->handle, conn_info); qedi 560 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "offload_conn returned %d, ep=%p\n", qedi 571 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 574 drivers/scsi/qedi/qedi_iscsi.c qedi = qedi_conn->qedi; qedi 576 drivers/scsi/qedi/qedi_iscsi.c rval = qedi_iscsi_update_conn(qedi, qedi_conn); qedi 602 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 605 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 607 drivers/scsi/qedi/qedi_iscsi.c qedi_conn_free_login_resources(qedi, qedi_conn); qedi 640 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 643 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 647 drivers/scsi/qedi/qedi_iscsi.c len = sysfs_format_mac(buf, qedi->mac, 6); qedi 653 drivers/scsi/qedi/qedi_iscsi.c if (qedi->ip_type == TCP_IPV4) qedi 654 drivers/scsi/qedi/qedi_iscsi.c len = sprintf(buf, "%pI4\n", qedi->src_ip); qedi 656 drivers/scsi/qedi/qedi_iscsi.c len = sprintf(buf, "%pI6\n", qedi->src_ip); qedi 671 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 674 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 675 drivers/scsi/qedi/qedi_iscsi.c qedi_ops->get_stats(qedi->cdev, &iscsi_stats); qedi 804 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 827 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 829 drivers/scsi/qedi/qedi_iscsi.c if (test_bit(QEDI_IN_OFFLINE, &qedi->flags) || qedi 830 drivers/scsi/qedi/qedi_iscsi.c test_bit(QEDI_IN_RECOVERY, &qedi->flags)) { qedi 837 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "endpoint create fail\n"); qedi 845 drivers/scsi/qedi/qedi_iscsi.c qedi_ep->qedi = qedi; qedi 853 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 862 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 866 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "Invalid endpoint\n"); qedi 869 drivers/scsi/qedi/qedi_iscsi.c if (atomic_read(&qedi->link_state) != QEDI_LINK_UP) { qedi 870 drivers/scsi/qedi/qedi_iscsi.c QEDI_WARN(&qedi->dbg_ctx, "qedi link down\n"); qedi 875 drivers/scsi/qedi/qedi_iscsi.c ret = qedi_alloc_sq(qedi, qedi_ep); qedi 879 drivers/scsi/qedi/qedi_iscsi.c ret = qedi_ops->acquire_conn(qedi->cdev, &qedi_ep->handle, qedi 883 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "Could not acquire connection\n"); qedi 894 drivers/scsi/qedi/qedi_iscsi.c qedi->ep_tbl[iscsi_cid] = qedi_ep; qedi 902 drivers/scsi/qedi/qedi_iscsi.c path_req.pmtu = qedi->ll2_mtu; qedi 903 drivers/scsi/qedi/qedi_iscsi.c qedi_ep->pmtu = qedi->ll2_mtu; qedi 917 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 923 drivers/scsi/qedi/qedi_iscsi.c atomic_inc(&qedi->num_offloads); qedi 927 drivers/scsi/qedi/qedi_iscsi.c qedi->ep_tbl[iscsi_cid] = NULL; qedi 928 drivers/scsi/qedi/qedi_iscsi.c tmp = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle); qedi 930 drivers/scsi/qedi/qedi_iscsi.c QEDI_WARN(&qedi->dbg_ctx, "release_conn returned %d\n", qedi 933 drivers/scsi/qedi/qedi_iscsi.c qedi_free_sq(qedi, qedi_ep); qedi 987 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 995 drivers/scsi/qedi/qedi_iscsi.c qedi = qedi_ep->qedi; qedi 1016 drivers/scsi/qedi/qedi_iscsi.c if (test_bit(QEDI_IN_RECOVERY, &qedi->flags)) { qedi 1018 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1023 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1044 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1058 drivers/scsi/qedi/qedi_iscsi.c qedi_clearsq(qedi, qedi_conn, NULL); qedi 1065 drivers/scsi/qedi/qedi_iscsi.c ret = qedi_ops->destroy_conn(qedi->cdev, qedi_ep->handle, abrt_conn); qedi 1067 drivers/scsi/qedi/qedi_iscsi.c QEDI_WARN(&qedi->dbg_ctx, qedi 1076 drivers/scsi/qedi/qedi_iscsi.c QEDI_WARN(&qedi->dbg_ctx, qedi 1083 drivers/scsi/qedi/qedi_iscsi.c ret = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle); qedi 1085 drivers/scsi/qedi/qedi_iscsi.c QEDI_WARN(&qedi->dbg_ctx, qedi 1090 drivers/scsi/qedi/qedi_iscsi.c qedi->ep_tbl[qedi_ep->iscsi_cid] = NULL; qedi 1091 drivers/scsi/qedi/qedi_iscsi.c qedi->cid_que.conn_cid_tbl[qedi_ep->iscsi_cid] = NULL; qedi 1092 drivers/scsi/qedi/qedi_iscsi.c qedi_free_id(&qedi->lcl_port_tbl, qedi_ep->src_port); qedi 1093 drivers/scsi/qedi/qedi_iscsi.c qedi_free_sq(qedi, qedi_ep); qedi 1099 drivers/scsi/qedi/qedi_iscsi.c qedi_ep->qedi = NULL; qedi 1100 drivers/scsi/qedi/qedi_iscsi.c atomic_dec(&qedi->num_offloads); qedi 1105 drivers/scsi/qedi/qedi_iscsi.c static int qedi_data_avail(struct qedi_ctx *qedi, u16 vlanid) qedi 1107 drivers/scsi/qedi/qedi_iscsi.c struct qed_dev *cdev = qedi->cdev; qedi 1114 drivers/scsi/qedi/qedi_iscsi.c udev = qedi->udev; qedi 1116 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "udev is NULL.\n"); qedi 1122 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "uctlr is NULL.\n"); qedi 1128 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "Invalid len %u\n", len); qedi 1134 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "alloc_skb failed\n"); qedi 1147 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "ll2 start_xmit returned %d\n", qedi 1162 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 1166 drivers/scsi/qedi/qedi_iscsi.c qedi = qedi_ep->qedi; qedi 1170 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 1183 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 1191 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 1210 drivers/scsi/qedi/qedi_iscsi.c qedi = iscsi_host_priv(shost); qedi 1212 drivers/scsi/qedi/qedi_iscsi.c ret = qedi_data_avail(qedi, path_data->vlan_id); qedi 1217 drivers/scsi/qedi/qedi_iscsi.c qedi_ep = qedi->ep_tbl[iscsi_cid]; qedi 1218 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1226 drivers/scsi/qedi/qedi_iscsi.c QEDI_NOTICE(&qedi->dbg_ctx, "dst mac NOT VALID\n"); qedi 1232 drivers/scsi/qedi/qedi_iscsi.c ether_addr_copy(&qedi_ep->src_mac[0], &qedi->mac[0]); qedi 1237 drivers/scsi/qedi/qedi_iscsi.c qedi_ep->pmtu = qedi->ll2_mtu; qedi 1238 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1243 drivers/scsi/qedi/qedi_iscsi.c if (path_data->pmtu != qedi->ll2_mtu) { qedi 1250 drivers/scsi/qedi/qedi_iscsi.c qedi_reset_host_mtu(qedi, path_data->pmtu); qedi 1251 drivers/scsi/qedi/qedi_iscsi.c qedi_ep->pmtu = qedi->ll2_mtu; qedi 1257 drivers/scsi/qedi/qedi_iscsi.c if (qedi_alloc_id(&qedi->lcl_port_tbl, port_id)) qedi 1264 drivers/scsi/qedi/qedi_iscsi.c port_id = qedi_alloc_new_id(&qedi->lcl_port_tbl); qedi 1266 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 1279 drivers/scsi/qedi/qedi_iscsi.c memcpy(&qedi->src_ip[0], &path_data->src.v4_addr, qedi 1281 drivers/scsi/qedi/qedi_iscsi.c qedi->ip_type = TCP_IPV4; qedi 1283 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 1290 drivers/scsi/qedi/qedi_iscsi.c memcpy(&qedi->src_ip[0], &path_data->src.v6_addr, qedi 1292 drivers/scsi/qedi/qedi_iscsi.c qedi->ip_type = TCP_IPV6; qedi 1294 drivers/scsi/qedi/qedi_iscsi.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 1301 drivers/scsi/qedi/qedi_iscsi.c queue_work(qedi->offload_thread, &qedi_ep->offload_work); qedi 1406 drivers/scsi/qedi/qedi_iscsi.c void qedi_start_conn_recovery(struct qedi_ctx *qedi, qedi 1419 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, qedi 1556 drivers/scsi/qedi/qedi_iscsi.c struct qedi_ctx *qedi; qedi 1572 drivers/scsi/qedi/qedi_iscsi.c qedi = ep->qedi; qedi 1574 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&qedi->dbg_ctx, "async event iscsi error:0x%x\n", qedi 1596 drivers/scsi/qedi/qedi_iscsi.c qedi_start_conn_recovery(qedi_conn->qedi, qedi_conn); qedi 1611 drivers/scsi/qedi/qedi_iscsi.c QEDI_ERR(&ep->qedi->dbg_ctx, "async event TCP error:0x%x\n", qedi 1614 drivers/scsi/qedi/qedi_iscsi.c qedi_start_conn_recovery(qedi_conn->qedi, qedi_conn); qedi 65 drivers/scsi/qedi/qedi_iscsi.h struct qedi_ctx *qedi; qedi 150 drivers/scsi/qedi/qedi_iscsi.h struct qedi_ctx *qedi; qedi 55 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_global_queues(struct qedi_ctx *qedi); qedi 56 drivers/scsi/qedi/qedi_main.c static void qedi_free_global_queues(struct qedi_ctx *qedi); qedi 57 drivers/scsi/qedi/qedi_main.c static struct qedi_cmd *qedi_get_cmd_from_tid(struct qedi_ctx *qedi, u32 tid); qedi 59 drivers/scsi/qedi/qedi_main.c static void qedi_ll2_free_skbs(struct qedi_ctx *qedi); qedi 60 drivers/scsi/qedi/qedi_main.c static struct nvm_iscsi_block *qedi_get_nvram_block(struct qedi_ctx *qedi); qedi 64 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi; qedi 74 drivers/scsi/qedi/qedi_main.c qedi = (struct qedi_ctx *)context; qedi 75 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 79 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 84 drivers/scsi/qedi/qedi_main.c qedi_ep = qedi->ep_tbl[data->icid]; qedi 87 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 118 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Recv Unknown Event %u\n", qedi 128 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = udev->qedi; qedi 139 drivers/scsi/qedi/qedi_main.c set_bit(UIO_DEV_OPENED, &qedi->flags); qedi 148 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = udev->qedi; qedi 151 drivers/scsi/qedi/qedi_main.c clear_bit(UIO_DEV_OPENED, &qedi->flags); qedi 152 drivers/scsi/qedi/qedi_main.c qedi_ll2_free_skbs(qedi); qedi 195 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = NULL; qedi 198 drivers/scsi/qedi/qedi_main.c qedi = udev->qedi; qedi 201 drivers/scsi/qedi/qedi_main.c spin_lock_bh(&qedi->ll2_lock); qedi 209 drivers/scsi/qedi/qedi_main.c spin_unlock_bh(&qedi->ll2_lock); qedi 250 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_uio_rings(struct qedi_ctx *qedi) qedi 256 drivers/scsi/qedi/qedi_main.c if (udev->pdev == qedi->pdev) { qedi 257 drivers/scsi/qedi/qedi_main.c udev->qedi = qedi; qedi 259 drivers/scsi/qedi/qedi_main.c udev->qedi = NULL; qedi 262 drivers/scsi/qedi/qedi_main.c qedi->udev = udev; qedi 275 drivers/scsi/qedi/qedi_main.c udev->qedi = qedi; qedi 276 drivers/scsi/qedi/qedi_main.c udev->pdev = qedi->pdev; qedi 285 drivers/scsi/qedi/qedi_main.c qedi->udev = udev; qedi 297 drivers/scsi/qedi/qedi_main.c static int qedi_init_uio(struct qedi_ctx *qedi) qedi 299 drivers/scsi/qedi/qedi_main.c struct qedi_uio_dev *udev = qedi->udev; qedi 333 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 342 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_and_init_sb(struct qedi_ctx *qedi, qedi 349 drivers/scsi/qedi/qedi_main.c sb_virt = dma_alloc_coherent(&qedi->pdev->dev, qedi 353 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 359 drivers/scsi/qedi/qedi_main.c ret = qedi_ops->common->sb_init(qedi->cdev, sb_info, sb_virt, sb_phys, qedi 362 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 371 drivers/scsi/qedi/qedi_main.c static void qedi_free_sb(struct qedi_ctx *qedi) qedi 376 drivers/scsi/qedi/qedi_main.c for (id = 0; id < MIN_NUM_CPUS_MSIX(qedi); id++) { qedi 377 drivers/scsi/qedi/qedi_main.c sb_info = &qedi->sb_array[id]; qedi 379 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, qedi 386 drivers/scsi/qedi/qedi_main.c static void qedi_free_fp(struct qedi_ctx *qedi) qedi 388 drivers/scsi/qedi/qedi_main.c kfree(qedi->fp_array); qedi 389 drivers/scsi/qedi/qedi_main.c kfree(qedi->sb_array); qedi 392 drivers/scsi/qedi/qedi_main.c static void qedi_destroy_fp(struct qedi_ctx *qedi) qedi 394 drivers/scsi/qedi/qedi_main.c qedi_free_sb(qedi); qedi 395 drivers/scsi/qedi/qedi_main.c qedi_free_fp(qedi); qedi 398 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_fp(struct qedi_ctx *qedi) qedi 402 drivers/scsi/qedi/qedi_main.c qedi->fp_array = kcalloc(MIN_NUM_CPUS_MSIX(qedi), qedi 404 drivers/scsi/qedi/qedi_main.c if (!qedi->fp_array) { qedi 405 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 410 drivers/scsi/qedi/qedi_main.c qedi->sb_array = kcalloc(MIN_NUM_CPUS_MSIX(qedi), qedi 412 drivers/scsi/qedi/qedi_main.c if (!qedi->sb_array) { qedi 413 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 422 drivers/scsi/qedi/qedi_main.c qedi_free_fp(qedi); qedi 426 drivers/scsi/qedi/qedi_main.c static void qedi_int_fp(struct qedi_ctx *qedi) qedi 431 drivers/scsi/qedi/qedi_main.c memset(qedi->fp_array, 0, MIN_NUM_CPUS_MSIX(qedi) * qedi 432 drivers/scsi/qedi/qedi_main.c sizeof(*qedi->fp_array)); qedi 433 drivers/scsi/qedi/qedi_main.c memset(qedi->sb_array, 0, MIN_NUM_CPUS_MSIX(qedi) * qedi 434 drivers/scsi/qedi/qedi_main.c sizeof(*qedi->sb_array)); qedi 436 drivers/scsi/qedi/qedi_main.c for (id = 0; id < MIN_NUM_CPUS_MSIX(qedi); id++) { qedi 437 drivers/scsi/qedi/qedi_main.c fp = &qedi->fp_array[id]; qedi 438 drivers/scsi/qedi/qedi_main.c fp->sb_info = &qedi->sb_array[id]; qedi 440 drivers/scsi/qedi/qedi_main.c fp->qedi = qedi; qedi 450 drivers/scsi/qedi/qedi_main.c static int qedi_prepare_fp(struct qedi_ctx *qedi) qedi 455 drivers/scsi/qedi/qedi_main.c ret = qedi_alloc_fp(qedi); qedi 459 drivers/scsi/qedi/qedi_main.c qedi_int_fp(qedi); qedi 461 drivers/scsi/qedi/qedi_main.c for (id = 0; id < MIN_NUM_CPUS_MSIX(qedi); id++) { qedi 462 drivers/scsi/qedi/qedi_main.c fp = &qedi->fp_array[id]; qedi 463 drivers/scsi/qedi/qedi_main.c ret = qedi_alloc_and_init_sb(qedi, fp->sb_info, fp->sb_id); qedi 465 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 475 drivers/scsi/qedi/qedi_main.c qedi_free_sb(qedi); qedi 476 drivers/scsi/qedi/qedi_main.c qedi_free_fp(qedi); qedi 481 drivers/scsi/qedi/qedi_main.c static int qedi_setup_cid_que(struct qedi_ctx *qedi) qedi 485 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_que_base = kmalloc_array(qedi->max_active_conns, qedi 487 drivers/scsi/qedi/qedi_main.c if (!qedi->cid_que.cid_que_base) qedi 490 drivers/scsi/qedi/qedi_main.c qedi->cid_que.conn_cid_tbl = kmalloc_array(qedi->max_active_conns, qedi 493 drivers/scsi/qedi/qedi_main.c if (!qedi->cid_que.conn_cid_tbl) { qedi 494 drivers/scsi/qedi/qedi_main.c kfree(qedi->cid_que.cid_que_base); qedi 495 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_que_base = NULL; qedi 499 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_que = (u32 *)qedi->cid_que.cid_que_base; qedi 500 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_q_prod_idx = 0; qedi 501 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_q_cons_idx = 0; qedi 502 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_q_max_idx = qedi->max_active_conns; qedi 503 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_free_cnt = qedi->max_active_conns; qedi 505 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->max_active_conns; i++) { qedi 506 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_que[i] = i; qedi 507 drivers/scsi/qedi/qedi_main.c qedi->cid_que.conn_cid_tbl[i] = NULL; qedi 513 drivers/scsi/qedi/qedi_main.c static void qedi_release_cid_que(struct qedi_ctx *qedi) qedi 515 drivers/scsi/qedi/qedi_main.c kfree(qedi->cid_que.cid_que_base); qedi 516 drivers/scsi/qedi/qedi_main.c qedi->cid_que.cid_que_base = NULL; qedi 518 drivers/scsi/qedi/qedi_main.c kfree(qedi->cid_que.conn_cid_tbl); qedi 519 drivers/scsi/qedi/qedi_main.c qedi->cid_que.conn_cid_tbl = NULL; qedi 597 drivers/scsi/qedi/qedi_main.c static void qedi_cm_free_mem(struct qedi_ctx *qedi) qedi 599 drivers/scsi/qedi/qedi_main.c kfree(qedi->ep_tbl); qedi 600 drivers/scsi/qedi/qedi_main.c qedi->ep_tbl = NULL; qedi 601 drivers/scsi/qedi/qedi_main.c qedi_free_id_tbl(&qedi->lcl_port_tbl); qedi 604 drivers/scsi/qedi/qedi_main.c static int qedi_cm_alloc_mem(struct qedi_ctx *qedi) qedi 608 drivers/scsi/qedi/qedi_main.c qedi->ep_tbl = kzalloc((qedi->max_active_conns * qedi 610 drivers/scsi/qedi/qedi_main.c if (!qedi->ep_tbl) qedi 613 drivers/scsi/qedi/qedi_main.c if (qedi_init_id_tbl(&qedi->lcl_port_tbl, QEDI_LOCAL_PORT_RANGE, qedi 615 drivers/scsi/qedi/qedi_main.c qedi_cm_free_mem(qedi); qedi 625 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = NULL; qedi 640 drivers/scsi/qedi/qedi_main.c qedi = iscsi_host_priv(shost); qedi 641 drivers/scsi/qedi/qedi_main.c memset(qedi, 0, sizeof(*qedi)); qedi 642 drivers/scsi/qedi/qedi_main.c qedi->shost = shost; qedi 643 drivers/scsi/qedi/qedi_main.c qedi->dbg_ctx.host_no = shost->host_no; qedi 644 drivers/scsi/qedi/qedi_main.c qedi->pdev = pdev; qedi 645 drivers/scsi/qedi/qedi_main.c qedi->dbg_ctx.pdev = pdev; qedi 646 drivers/scsi/qedi/qedi_main.c qedi->max_active_conns = ISCSI_MAX_SESS_PER_HBA; qedi 647 drivers/scsi/qedi/qedi_main.c qedi->max_sqes = QEDI_SQ_SIZE; qedi 649 drivers/scsi/qedi/qedi_main.c shost->nr_hw_queues = MIN_NUM_CPUS_MSIX(qedi); qedi 651 drivers/scsi/qedi/qedi_main.c pci_set_drvdata(pdev, qedi); qedi 654 drivers/scsi/qedi/qedi_main.c return qedi; qedi 659 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = (struct qedi_ctx *)cookie; qedi 665 drivers/scsi/qedi/qedi_main.c if (!qedi) { qedi 670 drivers/scsi/qedi/qedi_main.c if (!test_bit(UIO_DEV_OPENED, &qedi->flags)) { qedi 671 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_UIO, qedi 689 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_LL2, qedi 696 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_LL2, qedi 700 drivers/scsi/qedi/qedi_main.c udev = qedi->udev; qedi 705 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 720 drivers/scsi/qedi/qedi_main.c spin_lock_bh(&qedi->ll2_lock); qedi 721 drivers/scsi/qedi/qedi_main.c list_add_tail(&work->list, &qedi->ll2_skb_list); qedi 722 drivers/scsi/qedi/qedi_main.c spin_unlock_bh(&qedi->ll2_lock); qedi 724 drivers/scsi/qedi/qedi_main.c wake_up_process(qedi->ll2_recv_thread); qedi 730 drivers/scsi/qedi/qedi_main.c static int qedi_ll2_process_skb(struct qedi_ctx *qedi, struct sk_buff *skb, qedi 742 drivers/scsi/qedi/qedi_main.c if (!qedi) { qedi 747 drivers/scsi/qedi/qedi_main.c udev = qedi->udev; qedi 769 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_LL2, qedi 773 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_LL2, qedi 785 drivers/scsi/qedi/qedi_main.c static void qedi_ll2_free_skbs(struct qedi_ctx *qedi) qedi 789 drivers/scsi/qedi/qedi_main.c spin_lock_bh(&qedi->ll2_lock); qedi 790 drivers/scsi/qedi/qedi_main.c list_for_each_entry_safe(work, work_tmp, &qedi->ll2_skb_list, list) { qedi 796 drivers/scsi/qedi/qedi_main.c spin_unlock_bh(&qedi->ll2_lock); qedi 801 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = (struct qedi_ctx *)arg; qedi 807 drivers/scsi/qedi/qedi_main.c spin_lock_bh(&qedi->ll2_lock); qedi 808 drivers/scsi/qedi/qedi_main.c list_for_each_entry_safe(work, work_tmp, &qedi->ll2_skb_list, qedi 811 drivers/scsi/qedi/qedi_main.c qedi_ll2_process_skb(qedi, work->skb, work->vlan_id); qedi 816 drivers/scsi/qedi/qedi_main.c spin_unlock_bh(&qedi->ll2_lock); qedi 824 drivers/scsi/qedi/qedi_main.c static int qedi_set_iscsi_pf_param(struct qedi_ctx *qedi) qedi 833 drivers/scsi/qedi/qedi_main.c qedi->num_queues = MIN_NUM_CPUS_MSIX(qedi); qedi 835 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 836 drivers/scsi/qedi/qedi_main.c "Number of CQ count is %d\n", qedi->num_queues); qedi 838 drivers/scsi/qedi/qedi_main.c memset(&qedi->pf_params.iscsi_pf_params, 0, qedi 839 drivers/scsi/qedi/qedi_main.c sizeof(qedi->pf_params.iscsi_pf_params)); qedi 841 drivers/scsi/qedi/qedi_main.c qedi->p_cpuq = dma_alloc_coherent(&qedi->pdev->dev, qedi 842 drivers/scsi/qedi/qedi_main.c qedi->num_queues * sizeof(struct qedi_glbl_q_params), qedi 843 drivers/scsi/qedi/qedi_main.c &qedi->hw_p_cpuq, GFP_KERNEL); qedi 844 drivers/scsi/qedi/qedi_main.c if (!qedi->p_cpuq) { qedi 845 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "dma_alloc_coherent fail\n"); qedi 850 drivers/scsi/qedi/qedi_main.c rval = qedi_alloc_global_queues(qedi); qedi 852 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Global queue allocation failed.\n"); qedi 857 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.num_cons = QEDI_MAX_ISCSI_CONNS_PER_HBA; qedi 858 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.num_tasks = QEDI_MAX_ISCSI_TASK; qedi 859 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.half_way_close_timeout = 10; qedi 860 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.num_sq_pages_in_ring = num_sq_pages; qedi 861 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.num_r2tq_pages_in_ring = num_sq_pages; qedi 862 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.num_uhq_pages_in_ring = num_sq_pages; qedi 863 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.num_queues = qedi->num_queues; qedi 864 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.debug_mode = qedi_fw_debug; qedi 865 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.two_msl_timer = 4000; qedi 866 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.max_fin_rt = 2; qedi 872 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.log_page_size = log_page_size; qedi 874 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.glbl_q_params_addr = qedi 875 drivers/scsi/qedi/qedi_main.c (u64)qedi->hw_p_cpuq; qedi 881 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.rqe_log_size = 8; qedi 883 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.bdq_pbl_base_addr[BDQ_ID_RQ] = qedi 884 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_list_dma; qedi 885 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.bdq_pbl_num_entries[BDQ_ID_RQ] = qedi 886 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_list_num_entries; qedi 887 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.rq_buffer_size = QEDI_BDQ_BUF_SIZE; qedi 890 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.cq_num_entries = 2048; qedi 892 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.gl_rq_pi = QEDI_PROTO_CQ_PROD_IDX; qedi 893 drivers/scsi/qedi/qedi_main.c qedi->pf_params.iscsi_pf_params.gl_cmd_pi = 1; qedi 900 drivers/scsi/qedi/qedi_main.c static void qedi_free_iscsi_pf_param(struct qedi_ctx *qedi) qedi 904 drivers/scsi/qedi/qedi_main.c if (qedi->p_cpuq) { qedi 905 drivers/scsi/qedi/qedi_main.c size = qedi->num_queues * sizeof(struct qedi_glbl_q_params); qedi 906 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, size, qedi->p_cpuq, qedi 907 drivers/scsi/qedi/qedi_main.c qedi->hw_p_cpuq); qedi 910 drivers/scsi/qedi/qedi_main.c qedi_free_global_queues(qedi); qedi 912 drivers/scsi/qedi/qedi_main.c kfree(qedi->global_queues); qedi 936 drivers/scsi/qedi/qedi_main.c static int qedi_find_boot_info(struct qedi_ctx *qedi, qedi 970 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->max_active_conns; i++) { qedi 971 drivers/scsi/qedi/qedi_main.c qedi_conn = qedi_get_conn_from_id(qedi, i); qedi 1038 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi; qedi 1045 drivers/scsi/qedi/qedi_main.c qedi = (struct qedi_ctx *)dev; qedi 1048 drivers/scsi/qedi/qedi_main.c ether_addr_copy(data->mac[0], qedi->mac); qedi 1060 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = dev; qedi 1065 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1070 drivers/scsi/qedi/qedi_main.c mutex_lock(&qedi->stats_lock); qedi 1072 drivers/scsi/qedi/qedi_main.c qedi_ops->get_stats(qedi->cdev, fw_iscsi_stats); qedi 1073 drivers/scsi/qedi/qedi_main.c mutex_unlock(&qedi->stats_lock); qedi 1084 drivers/scsi/qedi/qedi_main.c iscsi->frame_size = qedi->ll2_mtu; qedi 1085 drivers/scsi/qedi/qedi_main.c block = qedi_get_nvram_block(qedi); qedi 1105 drivers/scsi/qedi/qedi_main.c rval = qedi_find_boot_info(qedi, iscsi, block); qedi 1107 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1118 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = (struct qedi_ctx *)dev; qedi 1121 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, "Link Up event.\n"); qedi 1122 drivers/scsi/qedi/qedi_main.c atomic_set(&qedi->link_state, QEDI_LINK_UP); qedi 1124 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1126 drivers/scsi/qedi/qedi_main.c atomic_set(&qedi->link_state, QEDI_LINK_DOWN); qedi 1138 drivers/scsi/qedi/qedi_main.c static int qedi_queue_cqe(struct qedi_ctx *qedi, union iscsi_cqe *cqe, qedi 1149 drivers/scsi/qedi/qedi_main.c q_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid]; qedi 1151 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 1161 drivers/scsi/qedi/qedi_main.c qedi_cmd = qedi_get_cmd_from_tid(qedi, cqe->cqe_solicited.itid); qedi 1167 drivers/scsi/qedi/qedi_main.c qedi_cmd->cqe_work.qedi = qedi; qedi 1182 drivers/scsi/qedi/qedi_main.c qedi_work->qedi = qedi; qedi 1190 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "FW Error cqe.\n"); qedi 1197 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = fp->qedi; qedi 1214 drivers/scsi/qedi/qedi_main.c que = qedi->global_queues[fp->sb_id]; qedi 1215 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO, qedi 1219 drivers/scsi/qedi/qedi_main.c qedi->intr_cpu = fp->sb_id; qedi 1230 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_IO, qedi 1234 drivers/scsi/qedi/qedi_main.c ret = qedi_queue_cqe(qedi, cqe, fp->sb_id, p); qedi 1236 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 1252 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = fp->qedi; qedi 1264 drivers/scsi/qedi/qedi_main.c que = qedi->global_queues[fp->sb_id]; qedi 1277 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = fp->qedi; qedi 1285 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, qedi 1307 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = (struct qedi_ctx *)cookie; qedi 1309 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, "qedi=%p.\n", qedi); qedi 1313 drivers/scsi/qedi/qedi_main.c static void qedi_sync_free_irqs(struct qedi_ctx *qedi) qedi 1318 drivers/scsi/qedi/qedi_main.c if (qedi->int_info.msix_cnt) { qedi 1319 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->int_info.used_cnt; i++) { qedi 1320 drivers/scsi/qedi/qedi_main.c idx = i * qedi->dev_info.common.num_hwfns + qedi 1321 drivers/scsi/qedi/qedi_main.c qedi_ops->common->get_affin_hwfn_idx(qedi->cdev); qedi 1323 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1326 drivers/scsi/qedi/qedi_main.c synchronize_irq(qedi->int_info.msix[idx].vector); qedi 1327 drivers/scsi/qedi/qedi_main.c irq_set_affinity_hint(qedi->int_info.msix[idx].vector, qedi 1329 drivers/scsi/qedi/qedi_main.c free_irq(qedi->int_info.msix[idx].vector, qedi 1330 drivers/scsi/qedi/qedi_main.c &qedi->fp_array[i]); qedi 1333 drivers/scsi/qedi/qedi_main.c qedi_ops->common->simd_handler_clean(qedi->cdev, qedi 1337 drivers/scsi/qedi/qedi_main.c qedi->int_info.used_cnt = 0; qedi 1338 drivers/scsi/qedi/qedi_main.c qedi_ops->common->set_fp_int(qedi->cdev, 0); qedi 1341 drivers/scsi/qedi/qedi_main.c static int qedi_request_msix_irq(struct qedi_ctx *qedi) qedi 1347 drivers/scsi/qedi/qedi_main.c for (i = 0; i < MIN_NUM_CPUS_MSIX(qedi); i++) { qedi 1348 drivers/scsi/qedi/qedi_main.c idx = i * qedi->dev_info.common.num_hwfns + qedi 1349 drivers/scsi/qedi/qedi_main.c qedi_ops->common->get_affin_hwfn_idx(qedi->cdev); qedi 1351 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1353 drivers/scsi/qedi/qedi_main.c qedi->dev_info.common.num_hwfns, qedi 1354 drivers/scsi/qedi/qedi_main.c qedi_ops->common->get_affin_hwfn_idx(qedi->cdev)); qedi 1356 drivers/scsi/qedi/qedi_main.c rc = request_irq(qedi->int_info.msix[idx].vector, qedi 1358 drivers/scsi/qedi/qedi_main.c &qedi->fp_array[i]); qedi 1360 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, "request_irq failed.\n"); qedi 1361 drivers/scsi/qedi/qedi_main.c qedi_sync_free_irqs(qedi); qedi 1364 drivers/scsi/qedi/qedi_main.c qedi->int_info.used_cnt++; qedi 1365 drivers/scsi/qedi/qedi_main.c rc = irq_set_affinity_hint(qedi->int_info.msix[idx].vector, qedi 1373 drivers/scsi/qedi/qedi_main.c static int qedi_setup_int(struct qedi_ctx *qedi) qedi 1377 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->common->set_fp_int(qedi->cdev, num_online_cpus()); qedi 1378 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->common->get_fp_int(qedi->cdev, &qedi->int_info); qedi 1382 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, qedi 1384 drivers/scsi/qedi/qedi_main.c qedi->int_info.msix_cnt, num_online_cpus()); qedi 1386 drivers/scsi/qedi/qedi_main.c if (qedi->int_info.msix_cnt) { qedi 1387 drivers/scsi/qedi/qedi_main.c rc = qedi_request_msix_irq(qedi); qedi 1390 drivers/scsi/qedi/qedi_main.c qedi_ops->common->simd_handler_config(qedi->cdev, &qedi, qedi 1393 drivers/scsi/qedi/qedi_main.c qedi->int_info.used_cnt = 1; qedi 1400 drivers/scsi/qedi/qedi_main.c static void qedi_free_nvm_iscsi_cfg(struct qedi_ctx *qedi) qedi 1402 drivers/scsi/qedi/qedi_main.c if (qedi->iscsi_image) qedi 1403 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, qedi 1405 drivers/scsi/qedi/qedi_main.c qedi->iscsi_image, qedi->nvm_buf_dma); qedi 1408 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_nvm_iscsi_cfg(struct qedi_ctx *qedi) qedi 1410 drivers/scsi/qedi/qedi_main.c qedi->iscsi_image = dma_alloc_coherent(&qedi->pdev->dev, qedi 1412 drivers/scsi/qedi/qedi_main.c &qedi->nvm_buf_dma, GFP_KERNEL); qedi 1413 drivers/scsi/qedi/qedi_main.c if (!qedi->iscsi_image) { qedi 1414 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Could not allocate NVM BUF.\n"); qedi 1417 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 1418 drivers/scsi/qedi/qedi_main.c "NVM BUF addr=0x%p dma=0x%llx.\n", qedi->iscsi_image, qedi 1419 drivers/scsi/qedi/qedi_main.c qedi->nvm_buf_dma); qedi 1424 drivers/scsi/qedi/qedi_main.c static void qedi_free_bdq(struct qedi_ctx *qedi) qedi 1428 drivers/scsi/qedi/qedi_main.c if (qedi->bdq_pbl_list) qedi 1429 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, QEDI_PAGE_SIZE, qedi 1430 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_list, qedi->bdq_pbl_list_dma); qedi 1432 drivers/scsi/qedi/qedi_main.c if (qedi->bdq_pbl) qedi 1433 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, qedi->bdq_pbl_mem_size, qedi 1434 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl, qedi->bdq_pbl_dma); qedi 1437 drivers/scsi/qedi/qedi_main.c if (qedi->bdq[i].buf_addr) { qedi 1438 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, QEDI_BDQ_BUF_SIZE, qedi 1439 drivers/scsi/qedi/qedi_main.c qedi->bdq[i].buf_addr, qedi 1440 drivers/scsi/qedi/qedi_main.c qedi->bdq[i].buf_dma); qedi 1445 drivers/scsi/qedi/qedi_main.c static void qedi_free_global_queues(struct qedi_ctx *qedi) qedi 1448 drivers/scsi/qedi/qedi_main.c struct global_queue **gl = qedi->global_queues; qedi 1450 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->num_queues; i++) { qedi 1455 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, gl[i]->cq_mem_size, qedi 1458 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, gl[i]->cq_pbl_size, qedi 1463 drivers/scsi/qedi/qedi_main.c qedi_free_bdq(qedi); qedi 1464 drivers/scsi/qedi/qedi_main.c qedi_free_nvm_iscsi_cfg(qedi); qedi 1467 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_bdq(struct qedi_ctx *qedi) qedi 1476 drivers/scsi/qedi/qedi_main.c qedi->bdq[i].buf_addr = qedi 1477 drivers/scsi/qedi/qedi_main.c dma_alloc_coherent(&qedi->pdev->dev, qedi 1479 drivers/scsi/qedi/qedi_main.c &qedi->bdq[i].buf_dma, qedi 1481 drivers/scsi/qedi/qedi_main.c if (!qedi->bdq[i].buf_addr) { qedi 1482 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1489 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_mem_size = QEDI_BDQ_NUM * sizeof(struct scsi_bd); qedi 1490 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_mem_size = ALIGN(qedi->bdq_pbl_mem_size, QEDI_PAGE_SIZE); qedi 1491 drivers/scsi/qedi/qedi_main.c qedi->rq_num_entries = qedi->bdq_pbl_mem_size / sizeof(struct scsi_bd); qedi 1493 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, "rq_num_entries = %d.\n", qedi 1494 drivers/scsi/qedi/qedi_main.c qedi->rq_num_entries); qedi 1496 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl = dma_alloc_coherent(&qedi->pdev->dev, qedi 1497 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_mem_size, qedi 1498 drivers/scsi/qedi/qedi_main.c &qedi->bdq_pbl_dma, GFP_KERNEL); qedi 1499 drivers/scsi/qedi/qedi_main.c if (!qedi->bdq_pbl) { qedi 1500 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Could not allocate BDQ PBL.\n"); qedi 1508 drivers/scsi/qedi/qedi_main.c pbl = (struct scsi_bd *)qedi->bdq_pbl; qedi 1511 drivers/scsi/qedi/qedi_main.c cpu_to_le32(QEDI_U64_HI(qedi->bdq[i].buf_dma)); qedi 1513 drivers/scsi/qedi/qedi_main.c cpu_to_le32(QEDI_U64_LO(qedi->bdq[i].buf_dma)); qedi 1514 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 1525 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_list = dma_alloc_coherent(&qedi->pdev->dev, qedi 1527 drivers/scsi/qedi/qedi_main.c &qedi->bdq_pbl_list_dma, qedi 1529 drivers/scsi/qedi/qedi_main.c if (!qedi->bdq_pbl_list) { qedi 1530 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1539 drivers/scsi/qedi/qedi_main.c qedi->bdq_pbl_list_num_entries = qedi->bdq_pbl_mem_size / qedi 1541 drivers/scsi/qedi/qedi_main.c list = (u64 *)qedi->bdq_pbl_list; qedi 1542 drivers/scsi/qedi/qedi_main.c page = qedi->bdq_pbl_list_dma; qedi 1543 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->bdq_pbl_list_num_entries; i++) { qedi 1544 drivers/scsi/qedi/qedi_main.c *list = qedi->bdq_pbl_dma; qedi 1552 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_global_queues(struct qedi_ctx *qedi) qedi 1565 drivers/scsi/qedi/qedi_main.c if (!qedi->num_queues) { qedi 1566 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "No MSI-X vectors available!\n"); qedi 1573 drivers/scsi/qedi/qedi_main.c if (!qedi->p_cpuq) { qedi 1578 drivers/scsi/qedi/qedi_main.c qedi->global_queues = kzalloc((sizeof(struct global_queue *) * qedi 1579 drivers/scsi/qedi/qedi_main.c qedi->num_queues), GFP_KERNEL); qedi 1580 drivers/scsi/qedi/qedi_main.c if (!qedi->global_queues) { qedi 1581 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1585 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, qedi 1586 drivers/scsi/qedi/qedi_main.c "qedi->global_queues=%p.\n", qedi->global_queues); qedi 1589 drivers/scsi/qedi/qedi_main.c rc = qedi_alloc_bdq(qedi); qedi 1594 drivers/scsi/qedi/qedi_main.c rc = qedi_alloc_nvm_iscsi_cfg(qedi); qedi 1601 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->num_queues; i++) { qedi 1602 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i] = qedi 1603 drivers/scsi/qedi/qedi_main.c kzalloc(sizeof(*qedi->global_queues[0]), qedi 1605 drivers/scsi/qedi/qedi_main.c if (!qedi->global_queues[i]) { qedi 1606 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1611 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_mem_size = qedi 1613 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_mem_size = qedi 1614 drivers/scsi/qedi/qedi_main.c (qedi->global_queues[i]->cq_mem_size + qedi 1617 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_pbl_size = qedi 1618 drivers/scsi/qedi/qedi_main.c (qedi->global_queues[i]->cq_mem_size / qedi 1620 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_pbl_size = qedi 1621 drivers/scsi/qedi/qedi_main.c (qedi->global_queues[i]->cq_pbl_size + qedi 1624 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq = dma_alloc_coherent(&qedi->pdev->dev, qedi 1625 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_mem_size, qedi 1626 drivers/scsi/qedi/qedi_main.c &qedi->global_queues[i]->cq_dma, qedi 1629 drivers/scsi/qedi/qedi_main.c if (!qedi->global_queues[i]->cq) { qedi 1630 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 1635 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_pbl = dma_alloc_coherent(&qedi->pdev->dev, qedi 1636 drivers/scsi/qedi/qedi_main.c qedi->global_queues[i]->cq_pbl_size, qedi 1637 drivers/scsi/qedi/qedi_main.c &qedi->global_queues[i]->cq_pbl_dma, qedi 1640 drivers/scsi/qedi/qedi_main.c if (!qedi->global_queues[i]->cq_pbl) { qedi 1641 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 1648 drivers/scsi/qedi/qedi_main.c num_pages = qedi->global_queues[i]->cq_mem_size / qedi 1650 drivers/scsi/qedi/qedi_main.c page = qedi->global_queues[i]->cq_dma; qedi 1651 drivers/scsi/qedi/qedi_main.c pbl = (u32 *)qedi->global_queues[i]->cq_pbl; qedi 1662 drivers/scsi/qedi/qedi_main.c list = (u32 *)qedi->p_cpuq; qedi 1670 drivers/scsi/qedi/qedi_main.c for (i = 0; i < qedi->num_queues; i++) { qedi 1671 drivers/scsi/qedi/qedi_main.c *list = (u32)qedi->global_queues[i]->cq_pbl_dma; qedi 1673 drivers/scsi/qedi/qedi_main.c *list = (u32)((u64)qedi->global_queues[i]->cq_pbl_dma >> 32); qedi 1685 drivers/scsi/qedi/qedi_main.c qedi_free_global_queues(qedi); qedi 1689 drivers/scsi/qedi/qedi_main.c int qedi_alloc_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep) qedi 1706 drivers/scsi/qedi/qedi_main.c ep->sq = dma_alloc_coherent(&qedi->pdev->dev, ep->sq_mem_size, qedi 1709 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 1714 drivers/scsi/qedi/qedi_main.c ep->sq_pbl = dma_alloc_coherent(&qedi->pdev->dev, ep->sq_pbl_size, qedi 1717 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, qedi 1739 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, ep->sq_mem_size, ep->sq, qedi 1745 drivers/scsi/qedi/qedi_main.c void qedi_free_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep) qedi 1748 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, ep->sq_pbl_size, ep->sq_pbl, qedi 1751 drivers/scsi/qedi/qedi_main.c dma_free_coherent(&qedi->pdev->dev, ep->sq_mem_size, ep->sq, qedi 1755 drivers/scsi/qedi/qedi_main.c int qedi_get_task_idx(struct qedi_ctx *qedi) qedi 1760 drivers/scsi/qedi/qedi_main.c tmp_idx = find_first_zero_bit(qedi->task_idx_map, qedi 1764 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "FW task context pool is full.\n"); qedi 1769 drivers/scsi/qedi/qedi_main.c if (test_and_set_bit(tmp_idx, qedi->task_idx_map)) qedi 1776 drivers/scsi/qedi/qedi_main.c void qedi_clear_task_idx(struct qedi_ctx *qedi, int idx) qedi 1778 drivers/scsi/qedi/qedi_main.c if (!test_and_clear_bit(idx, qedi->task_idx_map)) qedi 1779 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1783 drivers/scsi/qedi/qedi_main.c void qedi_update_itt_map(struct qedi_ctx *qedi, u32 tid, u32 proto_itt, qedi 1786 drivers/scsi/qedi/qedi_main.c qedi->itt_map[tid].itt = proto_itt; qedi 1787 drivers/scsi/qedi/qedi_main.c qedi->itt_map[tid].p_cmd = cmd; qedi 1789 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 1791 drivers/scsi/qedi/qedi_main.c qedi->itt_map[tid].itt); qedi 1794 drivers/scsi/qedi/qedi_main.c void qedi_get_task_tid(struct qedi_ctx *qedi, u32 itt, s16 *tid) qedi 1799 drivers/scsi/qedi/qedi_main.c if (qedi->itt_map[i].itt == itt) { qedi 1801 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 1811 drivers/scsi/qedi/qedi_main.c void qedi_get_proto_itt(struct qedi_ctx *qedi, u32 tid, u32 *proto_itt) qedi 1813 drivers/scsi/qedi/qedi_main.c *proto_itt = qedi->itt_map[tid].itt; qedi 1814 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, qedi 1819 drivers/scsi/qedi/qedi_main.c struct qedi_cmd *qedi_get_cmd_from_tid(struct qedi_ctx *qedi, u32 tid) qedi 1826 drivers/scsi/qedi/qedi_main.c cmd = qedi->itt_map[tid].p_cmd; qedi 1830 drivers/scsi/qedi/qedi_main.c qedi->itt_map[tid].p_cmd = NULL; qedi 1835 drivers/scsi/qedi/qedi_main.c static int qedi_alloc_itt(struct qedi_ctx *qedi) qedi 1837 drivers/scsi/qedi/qedi_main.c qedi->itt_map = kcalloc(MAX_ISCSI_TASK_ENTRIES, qedi 1839 drivers/scsi/qedi/qedi_main.c if (!qedi->itt_map) { qedi 1840 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 1847 drivers/scsi/qedi/qedi_main.c static void qedi_free_itt(struct qedi_ctx *qedi) qedi 1849 drivers/scsi/qedi/qedi_main.c kfree(qedi->itt_map); qedi 1930 drivers/scsi/qedi/qedi_main.c void qedi_reset_host_mtu(struct qedi_ctx *qedi, u16 mtu) qedi 1934 drivers/scsi/qedi/qedi_main.c qedi_recover_all_conns(qedi); qedi 1936 drivers/scsi/qedi/qedi_main.c qedi_ops->ll2->stop(qedi->cdev); qedi 1937 drivers/scsi/qedi/qedi_main.c qedi_ll2_free_skbs(qedi); qedi 1939 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, "old MTU %u, new MTU %u\n", qedi 1940 drivers/scsi/qedi/qedi_main.c qedi->ll2_mtu, mtu); qedi 1942 drivers/scsi/qedi/qedi_main.c qedi->ll2_mtu = mtu; qedi 1943 drivers/scsi/qedi/qedi_main.c params.mtu = qedi->ll2_mtu + IPV6_HDR_LEN + TCP_HDR_LEN; qedi 1946 drivers/scsi/qedi/qedi_main.c ether_addr_copy(params.ll2_mac_address, qedi->dev_info.common.hw_mac); qedi 1947 drivers/scsi/qedi/qedi_main.c qedi_ops->ll2->start(qedi->cdev, ¶ms); qedi 1955 drivers/scsi/qedi/qedi_main.c qedi_get_nvram_block(struct qedi_ctx *qedi) qedi 1962 drivers/scsi/qedi/qedi_main.c pf = qedi->dev_info.common.abs_pf_id; qedi 1963 drivers/scsi/qedi/qedi_main.c block = &qedi->iscsi_image->iscsi_cfg.block[0]; qedi 1978 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = data; qedi 1985 drivers/scsi/qedi/qedi_main.c block = qedi_get_nvram_block(qedi); qedi 2029 drivers/scsi/qedi/qedi_main.c rc = sysfs_format_mac(buf, qedi->mac, ETH_ALEN); qedi 2072 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = data; qedi 2077 drivers/scsi/qedi/qedi_main.c block = qedi_get_nvram_block(qedi); qedi 2111 drivers/scsi/qedi/qedi_main.c qedi_show_boot_tgt_info(struct qedi_ctx *qedi, int type, qedi 2120 drivers/scsi/qedi/qedi_main.c block = qedi_get_nvram_block(qedi); qedi 2124 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_EVT, qedi 2132 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_EVT, qedi 2206 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = data; qedi 2208 drivers/scsi/qedi/qedi_main.c return qedi_show_boot_tgt_info(qedi, type, buf, QEDI_NVM_TGT_PRI); qedi 2213 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = data; qedi 2215 drivers/scsi/qedi/qedi_main.c return qedi_show_boot_tgt_info(qedi, type, buf, QEDI_NVM_TGT_SEC); qedi 2244 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = data; qedi 2246 drivers/scsi/qedi/qedi_main.c scsi_host_put(qedi->shost); qedi 2249 drivers/scsi/qedi/qedi_main.c static int qedi_get_boot_info(struct qedi_ctx *qedi) qedi 2253 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 2255 drivers/scsi/qedi/qedi_main.c ret = qedi_ops->common->nvm_get_image(qedi->cdev, qedi 2257 drivers/scsi/qedi/qedi_main.c (char *)qedi->iscsi_image, qedi 2260 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2266 drivers/scsi/qedi/qedi_main.c static int qedi_setup_boot_info(struct qedi_ctx *qedi) qedi 2270 drivers/scsi/qedi/qedi_main.c if (qedi_get_boot_info(qedi)) qedi 2273 drivers/scsi/qedi/qedi_main.c qedi->boot_kset = iscsi_boot_create_host_kset(qedi->shost->host_no); qedi 2274 drivers/scsi/qedi/qedi_main.c if (!qedi->boot_kset) qedi 2277 drivers/scsi/qedi/qedi_main.c if (!scsi_host_get(qedi->shost)) qedi 2280 drivers/scsi/qedi/qedi_main.c boot_kobj = iscsi_boot_create_target(qedi->boot_kset, 0, qedi, qedi 2287 drivers/scsi/qedi/qedi_main.c if (!scsi_host_get(qedi->shost)) qedi 2290 drivers/scsi/qedi/qedi_main.c boot_kobj = iscsi_boot_create_target(qedi->boot_kset, 1, qedi, qedi 2297 drivers/scsi/qedi/qedi_main.c if (!scsi_host_get(qedi->shost)) qedi 2300 drivers/scsi/qedi/qedi_main.c boot_kobj = iscsi_boot_create_initiator(qedi->boot_kset, 0, qedi, qedi 2307 drivers/scsi/qedi/qedi_main.c if (!scsi_host_get(qedi->shost)) qedi 2310 drivers/scsi/qedi/qedi_main.c boot_kobj = iscsi_boot_create_ethernet(qedi->boot_kset, 0, qedi, qedi 2320 drivers/scsi/qedi/qedi_main.c scsi_host_put(qedi->shost); qedi 2322 drivers/scsi/qedi/qedi_main.c iscsi_boot_destroy_kset(qedi->boot_kset); qedi 2328 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi = pci_get_drvdata(pdev); qedi 2331 drivers/scsi/qedi/qedi_main.c if (qedi->tmf_thread) { qedi 2332 drivers/scsi/qedi/qedi_main.c flush_workqueue(qedi->tmf_thread); qedi 2333 drivers/scsi/qedi/qedi_main.c destroy_workqueue(qedi->tmf_thread); qedi 2334 drivers/scsi/qedi/qedi_main.c qedi->tmf_thread = NULL; qedi 2337 drivers/scsi/qedi/qedi_main.c if (qedi->offload_thread) { qedi 2338 drivers/scsi/qedi/qedi_main.c flush_workqueue(qedi->offload_thread); qedi 2339 drivers/scsi/qedi/qedi_main.c destroy_workqueue(qedi->offload_thread); qedi 2340 drivers/scsi/qedi/qedi_main.c qedi->offload_thread = NULL; qedi 2344 drivers/scsi/qedi/qedi_main.c qedi_dbg_host_exit(&qedi->dbg_ctx); qedi 2346 drivers/scsi/qedi/qedi_main.c if (!test_bit(QEDI_IN_OFFLINE, &qedi->flags)) qedi 2347 drivers/scsi/qedi/qedi_main.c qedi_ops->common->set_power_state(qedi->cdev, PCI_D0); qedi 2349 drivers/scsi/qedi/qedi_main.c qedi_sync_free_irqs(qedi); qedi 2351 drivers/scsi/qedi/qedi_main.c if (!test_bit(QEDI_IN_OFFLINE, &qedi->flags)) { qedi 2352 drivers/scsi/qedi/qedi_main.c qedi_ops->stop(qedi->cdev); qedi 2353 drivers/scsi/qedi/qedi_main.c qedi_ops->ll2->stop(qedi->cdev); qedi 2357 drivers/scsi/qedi/qedi_main.c qedi_free_iscsi_pf_param(qedi); qedi 2359 drivers/scsi/qedi/qedi_main.c rval = qedi_ops->common->update_drv_state(qedi->cdev, false); qedi 2361 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Failed to send drv state to MFW\n"); qedi 2363 drivers/scsi/qedi/qedi_main.c if (!test_bit(QEDI_IN_OFFLINE, &qedi->flags)) { qedi 2364 drivers/scsi/qedi/qedi_main.c qedi_ops->common->slowpath_stop(qedi->cdev); qedi 2365 drivers/scsi/qedi/qedi_main.c qedi_ops->common->remove(qedi->cdev); qedi 2368 drivers/scsi/qedi/qedi_main.c qedi_destroy_fp(qedi); qedi 2371 drivers/scsi/qedi/qedi_main.c qedi_release_cid_que(qedi); qedi 2372 drivers/scsi/qedi/qedi_main.c qedi_cm_free_mem(qedi); qedi 2373 drivers/scsi/qedi/qedi_main.c qedi_free_uio(qedi->udev); qedi 2374 drivers/scsi/qedi/qedi_main.c qedi_free_itt(qedi); qedi 2376 drivers/scsi/qedi/qedi_main.c iscsi_host_remove(qedi->shost); qedi 2377 drivers/scsi/qedi/qedi_main.c iscsi_host_free(qedi->shost); qedi 2379 drivers/scsi/qedi/qedi_main.c if (qedi->ll2_recv_thread) { qedi 2380 drivers/scsi/qedi/qedi_main.c kthread_stop(qedi->ll2_recv_thread); qedi 2381 drivers/scsi/qedi/qedi_main.c qedi->ll2_recv_thread = NULL; qedi 2383 drivers/scsi/qedi/qedi_main.c qedi_ll2_free_skbs(qedi); qedi 2385 drivers/scsi/qedi/qedi_main.c if (qedi->boot_kset) qedi 2386 drivers/scsi/qedi/qedi_main.c iscsi_boot_destroy_kset(qedi->boot_kset); qedi 2392 drivers/scsi/qedi/qedi_main.c struct qedi_ctx *qedi; qedi 2406 drivers/scsi/qedi/qedi_main.c qedi = qedi_host_alloc(pdev); qedi 2407 drivers/scsi/qedi/qedi_main.c if (!qedi) { qedi 2412 drivers/scsi/qedi/qedi_main.c qedi = pci_get_drvdata(pdev); qedi 2420 drivers/scsi/qedi/qedi_main.c qedi->cdev = qedi_ops->common->probe(pdev, &qed_params); qedi 2421 drivers/scsi/qedi/qedi_main.c if (!qedi->cdev) { qedi 2423 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Cannot initialize hardware\n"); qedi 2427 drivers/scsi/qedi/qedi_main.c atomic_set(&qedi->link_state, QEDI_LINK_DOWN); qedi 2429 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->fill_dev_info(qedi->cdev, &qedi->dev_info); qedi 2433 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 2435 drivers/scsi/qedi/qedi_main.c qedi->dev_info.common.num_hwfns, qedi 2436 drivers/scsi/qedi/qedi_main.c qedi_ops->common->get_affin_hwfn_idx(qedi->cdev)); qedi 2439 drivers/scsi/qedi/qedi_main.c rc = qedi_set_iscsi_pf_param(qedi); qedi 2442 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2448 drivers/scsi/qedi/qedi_main.c qedi_ops->common->update_pf_params(qedi->cdev, &qedi->pf_params); qedi 2450 drivers/scsi/qedi/qedi_main.c rc = qedi_prepare_fp(qedi); qedi 2452 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Cannot start slowpath.\n"); qedi 2464 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->common->slowpath_start(qedi->cdev, &sp_params); qedi 2466 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Cannot start slowpath\n"); qedi 2473 drivers/scsi/qedi/qedi_main.c qedi_ops->common->update_pf_params(qedi->cdev, &qedi->pf_params); qedi 2475 drivers/scsi/qedi/qedi_main.c rc = qedi_setup_int(qedi); qedi 2479 drivers/scsi/qedi/qedi_main.c qedi_ops->common->set_power_state(qedi->cdev, PCI_D0); qedi 2482 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->fill_dev_info(qedi->cdev, &qedi->dev_info); qedi 2487 drivers/scsi/qedi/qedi_main.c qedi->bdq_primary_prod = qedi->dev_info.primary_dbq_rq_addr; qedi 2488 drivers/scsi/qedi/qedi_main.c qedi->bdq_secondary_prod = qedi->dev_info.secondary_bdq_rq_addr; qedi 2489 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, qedi 2491 drivers/scsi/qedi/qedi_main.c qedi->bdq_primary_prod, qedi 2492 drivers/scsi/qedi/qedi_main.c qedi->bdq_secondary_prod); qedi 2499 drivers/scsi/qedi/qedi_main.c qedi->bdq_prod_idx = QEDI_BDQ_NUM; qedi 2500 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, qedi 2502 drivers/scsi/qedi/qedi_main.c qedi->bdq_prod_idx); qedi 2503 drivers/scsi/qedi/qedi_main.c writew(qedi->bdq_prod_idx, qedi->bdq_primary_prod); qedi 2504 drivers/scsi/qedi/qedi_main.c tmp = readw(qedi->bdq_primary_prod); qedi 2505 drivers/scsi/qedi/qedi_main.c writew(qedi->bdq_prod_idx, qedi->bdq_secondary_prod); qedi 2506 drivers/scsi/qedi/qedi_main.c tmp = readw(qedi->bdq_secondary_prod); qedi 2508 drivers/scsi/qedi/qedi_main.c ether_addr_copy(qedi->mac, qedi->dev_info.common.hw_mac); qedi 2509 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, "MAC address is %pM.\n", qedi 2510 drivers/scsi/qedi/qedi_main.c qedi->mac); qedi 2512 drivers/scsi/qedi/qedi_main.c sprintf(host_buf, "host_%d", qedi->shost->host_no); qedi 2513 drivers/scsi/qedi/qedi_main.c qedi_ops->common->set_name(qedi->cdev, host_buf); qedi 2515 drivers/scsi/qedi/qedi_main.c qedi_ops->register_ops(qedi->cdev, &qedi_cb_ops, qedi); qedi 2519 drivers/scsi/qedi/qedi_main.c qedi->ll2_mtu = DEF_PATH_MTU; qedi 2522 drivers/scsi/qedi/qedi_main.c ether_addr_copy(params.ll2_mac_address, qedi->dev_info.common.hw_mac); qedi 2526 drivers/scsi/qedi/qedi_main.c INIT_LIST_HEAD(&qedi->ll2_skb_list); qedi 2527 drivers/scsi/qedi/qedi_main.c spin_lock_init(&qedi->ll2_lock); qedi 2529 drivers/scsi/qedi/qedi_main.c spin_lock_init(&qedi->hba_lock); qedi 2530 drivers/scsi/qedi/qedi_main.c spin_lock_init(&qedi->task_idx_lock); qedi 2531 drivers/scsi/qedi/qedi_main.c mutex_init(&qedi->stats_lock); qedi 2533 drivers/scsi/qedi/qedi_main.c qedi_ops->ll2->register_cb_ops(qedi->cdev, &qedi_ll2_cb_ops, qedi); qedi 2534 drivers/scsi/qedi/qedi_main.c qedi_ops->ll2->start(qedi->cdev, ¶ms); qedi 2537 drivers/scsi/qedi/qedi_main.c qedi->ll2_recv_thread = kthread_run(qedi_ll2_recv_thread, qedi 2538 drivers/scsi/qedi/qedi_main.c (void *)qedi, qedi 2542 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->start(qedi->cdev, &qedi->tasks, qedi 2543 drivers/scsi/qedi/qedi_main.c qedi, qedi_iscsi_event_cb); qedi 2546 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, "Cannot start iSCSI function\n"); qedi 2550 drivers/scsi/qedi/qedi_main.c task_start = qedi_get_task_mem(&qedi->tasks, 0); qedi 2551 drivers/scsi/qedi/qedi_main.c task_end = qedi_get_task_mem(&qedi->tasks, MAX_TID_BLOCKS_ISCSI - 1); qedi 2552 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC, qedi 2554 drivers/scsi/qedi/qedi_main.c task_start, task_end, qedi->tasks.size); qedi 2558 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->common->set_link(qedi->cdev, &link_params); qedi 2560 drivers/scsi/qedi/qedi_main.c QEDI_WARN(&qedi->dbg_ctx, "Link set up failed.\n"); qedi 2561 drivers/scsi/qedi/qedi_main.c atomic_set(&qedi->link_state, QEDI_LINK_DOWN); qedi 2565 drivers/scsi/qedi/qedi_main.c qedi_dbg_host_init(&qedi->dbg_ctx, qedi_debugfs_ops, qedi 2568 drivers/scsi/qedi/qedi_main.c QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, qedi 2574 drivers/scsi/qedi/qedi_main.c if (iscsi_host_add(qedi->shost, &pdev->dev)) { qedi 2575 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2582 drivers/scsi/qedi/qedi_main.c rc = qedi_alloc_uio_rings(qedi); qedi 2584 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2589 drivers/scsi/qedi/qedi_main.c rc = qedi_init_uio(qedi); qedi 2591 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2597 drivers/scsi/qedi/qedi_main.c rc = qedi_setup_cid_que(qedi); qedi 2599 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2604 drivers/scsi/qedi/qedi_main.c rc = qedi_cm_alloc_mem(qedi); qedi 2606 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2611 drivers/scsi/qedi/qedi_main.c rc = qedi_alloc_itt(qedi); qedi 2613 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2618 drivers/scsi/qedi/qedi_main.c sprintf(host_buf, "host_%d", qedi->shost->host_no); qedi 2619 drivers/scsi/qedi/qedi_main.c qedi->tmf_thread = create_singlethread_workqueue(host_buf); qedi 2620 drivers/scsi/qedi/qedi_main.c if (!qedi->tmf_thread) { qedi 2621 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2627 drivers/scsi/qedi/qedi_main.c sprintf(host_buf, "qedi_ofld%d", qedi->shost->host_no); qedi 2628 drivers/scsi/qedi/qedi_main.c qedi->offload_thread = create_workqueue(host_buf); qedi 2629 drivers/scsi/qedi/qedi_main.c if (!qedi->offload_thread) { qedi 2630 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2637 drivers/scsi/qedi/qedi_main.c set_bit(QEDI_RESERVE_TASK_ID, qedi->task_idx_map); qedi 2638 drivers/scsi/qedi/qedi_main.c atomic_set(&qedi->num_offloads, 0); qedi 2640 drivers/scsi/qedi/qedi_main.c if (qedi_setup_boot_info(qedi)) qedi 2641 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2644 drivers/scsi/qedi/qedi_main.c rc = qedi_ops->common->update_drv_state(qedi->cdev, true); qedi 2646 drivers/scsi/qedi/qedi_main.c QEDI_ERR(&qedi->dbg_ctx, qedi 2654 drivers/scsi/qedi/qedi_main.c qedi_release_cid_que(qedi); qedi 2656 drivers/scsi/qedi/qedi_main.c qedi_free_uio(qedi->udev); qedi 2659 drivers/scsi/qedi/qedi_main.c qedi_dbg_host_exit(&qedi->dbg_ctx); qedi 2661 drivers/scsi/qedi/qedi_main.c iscsi_host_remove(qedi->shost); qedi 2663 drivers/scsi/qedi/qedi_main.c qedi_ops->stop(qedi->cdev); qedi 2665 drivers/scsi/qedi/qedi_main.c qedi_ops->common->slowpath_stop(qedi->cdev); qedi 2667 drivers/scsi/qedi/qedi_main.c qedi_ops->common->remove(qedi->cdev); qedi 2669 drivers/scsi/qedi/qedi_main.c qedi_free_iscsi_pf_param(qedi); qedi 2671 drivers/scsi/qedi/qedi_main.c iscsi_host_free(qedi->shost); qedi 23 drivers/scsi/qedi/qedi_sysfs.c struct qedi_ctx *qedi = qedi_dev_to_hba(dev); qedi 25 drivers/scsi/qedi/qedi_sysfs.c if (atomic_read(&qedi->link_state) == QEDI_LINK_UP) qedi 34 drivers/scsi/qedi/qedi_sysfs.c struct qedi_ctx *qedi = qedi_dev_to_hba(dev); qedi 37 drivers/scsi/qedi/qedi_sysfs.c qedi_ops->common->get_link(qedi->cdev, &if_link);