r329522 created problemss with commands that enter the TIMEDOUT state but
are successfully returned by the card (usually due to an abort being issued as part of timeout recovery). Remove what amounts to an insufficient KASSERT, and don't overwrite the state value. State should probably be re-designed, and that will be done with a future commit. Reported by: phk, bei.io Reviewed by: imp, mav Differential Revision: D19677
This commit is contained in:
parent
37338fb0d0
commit
136e1d1535
@ -2617,10 +2617,8 @@ mpr_intr_locked(void *data)
|
||||
} else {
|
||||
cm = &sc->commands[
|
||||
le16toh(desc->AddressReply.SMID)];
|
||||
KASSERT(cm->cm_state == MPR_CM_STATE_INQUEUE,
|
||||
("command SMID %d not inqueue\n",
|
||||
desc->AddressReply.SMID));
|
||||
cm->cm_state = MPR_CM_STATE_BUSY;
|
||||
if (cm->cm_state != MPR_CM_STATE_TIMEDOUT)
|
||||
cm->cm_state = MPR_CM_STATE_BUSY;
|
||||
cm->cm_reply = reply;
|
||||
cm->cm_reply_data =
|
||||
le32toh(desc->AddressReply.
|
||||
|
@ -2481,9 +2481,8 @@ mps_intr_locked(void *data)
|
||||
} else {
|
||||
cm = &sc->commands[
|
||||
le16toh(desc->AddressReply.SMID)];
|
||||
KASSERT(cm->cm_state == MPS_CM_STATE_INQUEUE,
|
||||
("command not inqueue\n"));
|
||||
cm->cm_state = MPS_CM_STATE_BUSY;
|
||||
if (cm->cm_state != MPS_MPS_STATE_TIMEDOUT)
|
||||
cm->cm_state = MPS_CM_STATE_BUSY;
|
||||
cm->cm_reply = reply;
|
||||
cm->cm_reply_data = le32toh(
|
||||
desc->AddressReply.ReplyFrameAddress);
|
||||
|
Loading…
Reference in New Issue
Block a user