svn commit: r213105 - head/sys/dev/mpt
Marius Strobl
marius at FreeBSD.org
Fri Sep 24 16:40:47 UTC 2010
Author: marius
Date: Fri Sep 24 16:40:46 2010
New Revision: 213105
URL: http://svn.freebsd.org/changeset/base/213105
Log:
Improve r56796; the reply handler actually may remove the request from
the chain in which case it shouldn't be removed twice.
Reported by: Staale Kristoffersen
MFC after: 1 week
Modified:
head/sys/dev/mpt/mpt.c
Modified: head/sys/dev/mpt/mpt.c
==============================================================================
--- head/sys/dev/mpt/mpt.c Fri Sep 24 15:12:18 2010 (r213104)
+++ head/sys/dev/mpt/mpt.c Fri Sep 24 16:40:46 2010 (r213105)
@@ -844,13 +844,14 @@ mpt_complete_request_chain(struct mpt_so
MSG_REQUEST_HEADER *msg_hdr;
u_int cb_index;
- TAILQ_REMOVE(chain, req, links);
msg_hdr = (MSG_REQUEST_HEADER *)req->req_vbuf;
ioc_status_frame.Function = msg_hdr->Function;
ioc_status_frame.MsgContext = msg_hdr->MsgContext;
cb_index = MPT_CONTEXT_TO_CBI(le32toh(msg_hdr->MsgContext));
mpt_reply_handlers[cb_index](mpt, req, msg_hdr->MsgContext,
&ioc_status_frame);
+ if (mpt_req_on_pending_list(mpt, req) != 0)
+ TAILQ_REMOVE(chain, req, links);
}
}
More information about the svn-src-all
mailing list