diff options
Diffstat (limited to 'sys/dev/isp/isp_target.c')
-rw-r--r-- | sys/dev/isp/isp_target.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/sys/dev/isp/isp_target.c b/sys/dev/isp/isp_target.c index 9d23805..4f7d599 100644 --- a/sys/dev/isp/isp_target.c +++ b/sys/dev/isp/isp_target.c @@ -363,7 +363,7 @@ isp_target_put_entry(struct ispsoftc *isp, void *ap) return (-1); } - ISP_TDQE(isp, "isp_target_put_entry", (int) optr, ap);; + ISP_TDQE(isp, "isp_target_put_entry", (int) optr, ap); ISP_ADD_REQUEST(isp, nxti); return (0); } @@ -539,6 +539,11 @@ isp_target_async(struct ispsoftc *isp, int bus, int event) msg.nt_msg[0] = MSG_BUS_DEV_RESET; (void) isp_async(isp, ISPASYNC_TARGET_MESSAGE, &msg); break; + case ASYNC_CTIO_DONE: + evt.ev_bus = bus; + evt.ev_event = event; + (void) isp_async(isp, ISPASYNC_TARGET_EVENT, &evt); + return (0); default: isp_prt(isp, ISP_LOGERR, "isp_target_async: unknown event 0x%x", event); @@ -611,14 +616,18 @@ isp_got_msg_fc(struct ispsoftc *isp, int bus, in_fcentry_t *inp) msg.nt_tagval = inp->in_seqid; msg.nt_lun = lun; - if (inp->in_task_flags & TASK_FLAGS_ABORT_TASK) { - isp_prt(isp, ISP_LOGINFO, f1, "ABORT TASK", + if (inp->in_task_flags & TASK_FLAGS_ABORT_TASK_SET) { + isp_prt(isp, ISP_LOGINFO, f1, "ABORT TASK SET", inp->in_iid, lun, inp->in_seqid); - msg.nt_msg[0] = MSG_ABORT_TAG; + msg.nt_msg[0] = MSG_ABORT; } else if (inp->in_task_flags & TASK_FLAGS_CLEAR_TASK_SET) { isp_prt(isp, ISP_LOGINFO, f1, "CLEAR TASK SET", inp->in_iid, lun, inp->in_seqid); msg.nt_msg[0] = MSG_CLEAR_QUEUE; + } else if (inp->in_task_flags & TASK_FLAGS_LUN_RESET) { + isp_prt(isp, ISP_LOGINFO, f1, "LUN RESET", + inp->in_iid, lun, inp->in_seqid); + msg.nt_msg[0] = MSG_LUN_RESET; } else if (inp->in_task_flags & TASK_FLAGS_TARGET_RESET) { isp_prt(isp, ISP_LOGINFO, f1, "TARGET RESET", inp->in_iid, lun, inp->in_seqid); @@ -626,12 +635,7 @@ isp_got_msg_fc(struct ispsoftc *isp, int bus, in_fcentry_t *inp) } else if (inp->in_task_flags & TASK_FLAGS_CLEAR_ACA) { isp_prt(isp, ISP_LOGINFO, f1, "CLEAR ACA", inp->in_iid, lun, inp->in_seqid); - /* ???? */ msg.nt_msg[0] = MSG_REL_RECOVERY; - } else if (inp->in_task_flags & TASK_FLAGS_TERMINATE_TASK) { - isp_prt(isp, ISP_LOGINFO, f1, "TERMINATE TASK", - inp->in_iid, lun, inp->in_seqid); - msg.nt_msg[0] = MSG_TERM_IO_PROC; } else { isp_prt(isp, ISP_LOGWARN, f2, "task flag", inp->in_status, lun, inp->in_iid, @@ -1091,7 +1095,7 @@ isp_handle_ctio2(struct ispsoftc *isp, ct2_entry_t *ct) /* * CTIO rejected by the firmware - invalid data direction. */ - isp_prt(isp, ISP_LOGERR, "CTIO2 had wrong data directiond"); + isp_prt(isp, ISP_LOGERR, "CTIO2 had wrong data direction"); break; case CT_RSELTMO: |