On 11/10/2010 05:04 PM, Eddie Wai wrote:
In the case the chip is undergoing different invasive operation which requires a chip reset, all NOPOUT request during this period
For these invasive operations that reset the chip, do we always end up having to relogin the connection/session or once the reset is done are we able to just go on happily like nothing ever happened?
must be silently dropped from queuing to the hardware. This patch will respond to libiscsi immediately with sent success. Since the request was not actually sent, the NOPIN wait timeout will get triggered and another NOPOUT request will commence through the proper channel. Signed-off-by: Eddie Wai<[email protected]> Acked-by: Anil Veerabhadrappa<[email protected]> --- drivers/scsi/bnx2i/bnx2i_iscsi.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c index b32baf8..507cd25 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -1068,6 +1068,22 @@ static int bnx2i_iscsi_send_generic_request(struct iscsi_task *task) char *buf; int data_len; + /* + * Forcefully terminate all in progress connection recovery at the + * earliest, either in bind(), send_pdu(LOGIN), or conn_start() + */ + if (bnx2i_adapter_ready(bnx2i_conn->ep->hba)) { + if ((task->hdr->opcode& ISCSI_OPCODE_MASK) == + ISCSI_OP_NOOP_OUT) + /* This is a WA to indicate to libiscsi that the nopout + * request was sent successfully without actually + * submitting to the hardware. + * Just silently drop the nopout request + */ + return 0; + else + return -EIO; + } bnx2i_iscsi_prep_generic_pdu_bd(bnx2i_conn); switch (task->hdr->opcode& ISCSI_OPCODE_MASK) { case ISCSI_OP_LOGIN:
-- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.
