Mercurial > illumos > illumos-gate
changeset 9934:a4bd03644408
6845097 panic in assertion: digest_choice != NULL during testing of iSER teststuite
6849720 iSCSI target panics during vdbench performance test from Windows 2008 initiator
author | Priya Krishnan <Priya.Krishnan@Sun.COM> |
---|---|
date | Mon, 22 Jun 2009 16:00:45 -0400 |
parents | 24d797986369 |
children | 41052599accc |
files | usr/src/uts/common/io/comstar/port/iscsit/iscsit.c usr/src/uts/common/io/ib/clients/iser/iser_idm.c |
diffstat | 2 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/comstar/port/iscsit/iscsit.c Mon Jun 22 12:41:29 2009 -0700 +++ b/usr/src/uts/common/io/comstar/port/iscsit/iscsit.c Mon Jun 22 16:00:45 2009 -0400 @@ -1890,14 +1890,24 @@ uint64_t, 0, uint32_t, 0, uint32_t, 0, /* no raddr */ uint32_t, rx_pdu->isp_datalen, int, XFER_BUF_TX_TO_INI); - stmf_post_task(task, ibuf->ibuf_stmf_buf); - + /* + * For immediate data transfer, there is no callback from + * stmf to indicate that the initial burst of data is + * transferred successfully. In some cases, the task can + * get freed before execution returns from stmf_post_task. + * Although this xfer-start/done probe accurately tracks + * the size of the transfer, it does only provide a best + * effort on the timing of the transfer. + */ DTRACE_ISCSI_8(xfer__done, idm_conn_t *, ic, uintptr_t, ibuf->ibuf_stmf_buf->db_sglist[0].seg_addr, uint32_t, ibuf->ibuf_stmf_buf->db_relative_offset, uint64_t, 0, uint32_t, 0, uint32_t, 0, /* no raddr */ uint32_t, rx_pdu->isp_datalen, int, XFER_BUF_TX_TO_INI); + + stmf_post_task(task, ibuf->ibuf_stmf_buf); } else { + stmf_post_task(task, NULL); idm_pdu_complete(rx_pdu, IDM_STATUS_SUCCESS); }
--- a/usr/src/uts/common/io/ib/clients/iser/iser_idm.c Mon Jun 22 12:41:29 2009 -0700 +++ b/usr/src/uts/common/io/ib/clients/iser/iser_idm.c Mon Jun 22 16:00:45 2009 -0400 @@ -724,6 +724,7 @@ ASSERT(nvrc == 0); if (strcasecmp(digest_choice_string, "none") == 0) { + /* Add to negotiated values list */ nvrc = nvlist_add_string(negotiated_nvl, ikvx->ik_key_name, digest_choice_string); @@ -743,8 +744,6 @@ digest_choice); } - ASSERT(digest_choice != NULL); - return (kvrc); }