Lines Matching defs:ea

38 				      struct event_arg *ea);
299 struct event_arg ea;
307 memset(&ea, 0, sizeof(ea));
308 ea.fcport = sp->fcport;
309 ea.data[0] = lio->u.logio.data[0];
310 ea.data[1] = lio->u.logio.data[1];
311 ea.iop[0] = lio->u.logio.iop[0];
312 ea.iop[1] = lio->u.logio.iop[1];
313 ea.sp = sp;
315 ea.data[0] = MBS_COMMAND_ERROR;
316 qla24xx_handle_plogi_done_event(vha, &ea);
508 void qla24xx_handle_adisc_event(scsi_qla_host_t *vha, struct event_arg *ea)
510 struct fc_port *fcport = ea->fcport;
516 fcport->fw_login_state, ea->rc, fcport->login_gen, ea->sp->gen2,
517 fcport->rscn_gen, ea->sp->gen1, fcport->loop_id);
519 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n",
520 ea->data[0]);
522 if (ea->data[0] != MBS_COMMAND_COMPLETE) {
525 __func__, ea->fcport->port_name);
535 qlt_schedule_sess_for_deletion(ea->fcport);
539 if (ea->fcport->disc_state == DSC_DELETE_PEND)
542 if (ea->sp->gen2 != ea->fcport->login_gen) {
546 __func__, ea->fcport->port_name);
548 } else if (ea->sp->gen1 != ea->fcport->rscn_gen) {
554 __qla24xx_handle_gpdb_event(vha, ea);
574 struct event_arg ea;
583 memset(&ea, 0, sizeof(ea));
584 ea.rc = res;
585 ea.data[0] = lio->u.logio.data[0];
586 ea.data[1] = lio->u.logio.data[1];
587 ea.iop[0] = lio->u.logio.iop[0];
588 ea.iop[1] = lio->u.logio.iop[1];
589 ea.fcport = sp->fcport;
590 ea.sp = sp;
592 ea.data[0] = MBS_COMMAND_ERROR;
594 qla24xx_handle_adisc_event(vha, &ea);
722 struct event_arg *ea)
732 fcport = ea->fcport;
736 fcport->fw_login_state, ea->rc,
743 if (ea->rc) { /* rval */
764 n = ea->data[0] / sizeof(struct get_name_list_extended);
1029 struct event_arg ea;
1042 memset(&ea, 0, sizeof(ea));
1043 ea.sp = sp;
1044 ea.rc = res;
1050 ea.data[0] = sp->u.iocb_cmd.u.mbx.in_mb[1]; /* amnt xfered */
1081 ea.fcport = fcport;
1083 qla24xx_handle_gnl_done_event(vha, &ea);
1227 struct event_arg ea;
1238 memset(&ea, 0, sizeof(ea));
1239 ea.fcport = fcport;
1240 ea.sp = sp;
1242 qla24xx_handle_gpdb_event(vha, &ea);
1271 struct event_arg ea;
1280 memset(&ea, 0, sizeof(ea));
1281 ea.fcport = sp->fcport;
1282 ea.data[0] = lio->u.logio.data[0];
1283 ea.data[1] = lio->u.logio.data[1];
1284 ea.iop[0] = lio->u.logio.iop[0];
1285 ea.iop[1] = lio->u.logio.iop[1];
1286 ea.sp = sp;
1288 ea.data[0] = QLA_OS_TIMER_EXPIRED;
1290 ea.data[0] = MBS_COMMAND_ERROR;
1292 qla24xx_handle_prli_done_event(vha, &ea);
1455 void __qla24xx_handle_gpdb_event(scsi_qla_host_t *vha, struct event_arg *ea)
1460 ea->fcport->login_gen++;
1461 ea->fcport->logout_on_delete = 1;
1463 if (!ea->fcport->login_succ && !IS_SW_RESV_ADDR(ea->fcport->d_id)) {
1465 ea->fcport->login_succ = 1;
1468 qla24xx_sched_upd_fcport(ea->fcport);
1470 } else if (ea->fcport->login_succ) {
1478 __func__, __LINE__, ea->fcport->port_name);
1479 qla2x00_set_fcport_disc_state(ea->fcport, DSC_LOGIN_COMPLETE);
1535 void qla24xx_handle_gpdb_event(scsi_qla_host_t *vha, struct event_arg *ea)
1537 fc_port_t *fcport = ea->fcport;
1539 struct srb *sp = ea->sp;
1549 fcport->fc4_type, ea->rc);
1562 if (ea->sp->gen2 != fcport->login_gen) {
1569 } else if (ea->sp->gen1 != fcport->rscn_gen) {
1608 __qla24xx_handle_gpdb_event(vha, ea);
1845 void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
1850 switch (ea->id.b.rsvd_1) {
1852 fcport = qla2x00_find_fcport_by_nportid(vha, &ea->id, 1);
1892 if ((ea->id.b24 & 0xffff00) == (fcport->d_id.b24 & 0xffff00)) {
1904 if ((ea->id.b24 & 0xff0000) == (fcport->d_id.b24 & 0xff0000)) {
1933 struct event_arg *ea)
1935 fc_port_t *fcport = ea->fcport;
1960 struct event_arg *ea)
1962 if (N2N_TOPO(vha->hw) && fcport_is_smaller(ea->fcport) &&
1965 qla24xx_post_gpdb_work(vha, ea->fcport, 0);
1975 __func__, __LINE__, ea->fcport->port_name);
1976 qla24xx_post_prli_work(vha, ea->fcport);
1985 struct event_arg ea;
1995 memset(&ea, 0, sizeof(ea));
1996 ea.id = fcport->d_id;
1997 ea.id.b.rsvd_1 = RSCN_PORT_ADDR;
1998 qla2x00_handle_rscn(fcport->vha, &ea);
2367 qla24xx_handle_prli_done_event(struct scsi_qla_host *vha, struct event_arg *ea)
2370 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n",
2371 ea->data[0]);
2373 switch (ea->data[0]) {
2377 __func__, __LINE__, ea->fcport->port_name);
2379 ea->fcport->chip_reset = vha->hw->base_qpair->chip_reset;
2380 ea->fcport->logout_on_delete = 1;
2381 ea->fcport->nvme_prli_service_param = ea->iop[0];
2382 if (ea->iop[0] & NVME_PRLI_SP_FIRST_BURST)
2383 ea->fcport->nvme_first_burst_size =
2384 (ea->iop[1] & 0xffff) * 512;
2386 ea->fcport->nvme_first_burst_size = 0;
2387 qla24xx_post_gpdb_work(vha, ea->fcport, 0);
2390 sp = ea->sp;
2393 __func__, __LINE__, ea->fcport->port_name,
2395 "FCP" : "NVMe", ea->fcport->fc4_type,
2399 if (NVME_FCP_TARGET(ea->fcport)) {
2401 ea->fcport->do_prli_nvme = 0;
2403 ea->fcport->do_prli_nvme = 1;
2405 ea->fcport->do_prli_nvme = 0;
2409 if (ea->fcport->n2n_link_reset_cnt ==
2411 ea->fcport->flags & FCF_FCSP_DEVICE) {
2413 ea->fcport->n2n_link_reset_cnt = 0;
2416 if (ea->fcport->n2n_link_reset_cnt <
2418 ea->fcport->n2n_link_reset_cnt++;
2430 ea->fcport->port_name);
2437 ea->fcport->flags &= ~FCF_ASYNC_SENT;
2438 ea->fcport->keep_nport_handle = 0;
2439 ea->fcport->logout_on_delete = 1;
2440 qlt_schedule_sess_for_deletion(ea->fcport);
2447 qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea)
2453 struct fc_port *fcport = ea->fcport;
2458 fcport->fw_login_state, ea->rc, ea->sp->gen2, fcport->login_gen,
2459 ea->sp->gen1, fcport->rscn_gen,
2460 ea->data[0], ea->data[1], ea->iop[0], ea->iop[1]);
2476 if (ea->sp->gen2 != fcport->login_gen) {
2483 } else if (ea->sp->gen1 != fcport->rscn_gen) {
2492 WARN_ONCE(!qla2xxx_is_valid_mbs(ea->data[0]), "mbs: %#x\n",
2493 ea->data[0]);
2495 switch (ea->data[0]) {
2503 set_bit(ea->fcport->loop_id, vha->hw->loop_id_map);
2505 ea->fcport->chip_reset = vha->hw->base_qpair->chip_reset;
2506 ea->fcport->logout_on_delete = 1;
2507 ea->fcport->send_els_logo = 0;
2508 ea->fcport->fw_login_state = DSC_LS_PLOGI_COMP;
2511 qla24xx_post_gpdb_work(vha, ea->fcport, 0);
2538 __func__, __LINE__, ea->fcport->port_name, ea->data[1]);
2540 qlt_schedule_sess_for_deletion(ea->fcport);
2544 cid.b.domain = (ea->iop[1] >> 16) & 0xff;
2545 cid.b.area = (ea->iop[1] >> 8) & 0xff;
2546 cid.b.al_pa = ea->iop[1] & 0xff;
2551 __func__, __LINE__, ea->fcport->port_name,
2552 ea->fcport->loop_id, cid.b24);
2554 set_bit(ea->fcport->loop_id, vha->hw->loop_id_map);
2555 ea->fcport->loop_id = FC_NO_LOOP_ID;
2556 qla24xx_post_gnl_work(vha, ea->fcport);
2559 lid = ea->iop[1] & 0xffff;
2561 wwn_to_u64(ea->fcport->port_name),
2562 ea->fcport->d_id, lid, &conflict_fcport);
2570 conflict_fcport->conflict = ea->fcport;
2571 ea->fcport->login_pause = 1;
2575 __func__, __LINE__, ea->fcport->port_name,
2576 ea->fcport->d_id.b24, lid);
2580 __func__, __LINE__, ea->fcport->port_name,
2581 ea->fcport->d_id.b24, lid);
2583 qla2x00_clear_loop_id(ea->fcport);
2585 ea->fcport->loop_id = lid;
2586 ea->fcport->keep_nport_handle = 0;
2587 ea->fcport->logout_on_delete = 1;
2588 qlt_schedule_sess_for_deletion(ea->fcport);