All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Nicholas Bellinger <nab@linux-iscsi.org>
Subject: [ 02/16] iscsi-target: Fix ImmediateData=Yes failure regression in >= v3.10
Date: Thu, 12 Sep 2013 11:14:54 -0700	[thread overview]
Message-ID: <20130912181156.476451115@linuxfoundation.org> (raw)
In-Reply-To: <20130912181156.173326121@linuxfoundation.org>

3.11-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Nicholas Bellinger <nab@linux-iscsi.org>

commit 9d86a2befceb06ee83c1a588915e6d6e0abef797 upstream.

This patch addresses a regression bug within ImmediateData=Yes failure
handling that ends up triggering an OOPs within >= v3.10 iscsi-target
code.

The problem occurs when iscsit_process_scsi_cmd() does the call to
target_put_sess_cmd(), and once again in iscsit_get_immediate_data()
that is triggered during two different cases:

 - When iscsit_sequence_cmd() returns CMDSN_LOWER_THAN_EXP, for which
   the descriptor state will already have been set to ISTATE_REMOVE
   by iscsit_sequence_cmd(), and
 - When iscsi_cmd->sense_reason is set, for which iscsit_execute_cmd()
   will have already called transport_send_check_condition_and_sense()
   to queue the exception response.

It changes iscsit_process_scsi_cmd() to drop the early call, and makes
iscsit_get_immediate_data() call target_put_sess_cmd() from a single
location after dumping the immediate data for the failed command.

The regression was initially introduced in commit:

commit 561bf15892375597ee59d473a704a3e634c4f311
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Wed Jul 3 03:58:58 2013 -0700

    iscsi-target: Fix iscsit_sequence_cmd reject handling for iser

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/iscsi/iscsi_target.c |    9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -1086,7 +1086,6 @@ int iscsit_process_scsi_cmd(struct iscsi
 		if (cmd->reject_reason)
 			return 0;
 
-		target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
 		return 1;
 	}
 	/*
@@ -1124,14 +1123,10 @@ after_immediate_data:
 		 */
 		cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd,
 					(unsigned char *)hdr, hdr->cmdsn);
-		if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) {
+		if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER)
 			return -1;
-		} else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
-			target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
-			return 0;
-		}
 
-		if (cmd->sense_reason) {
+		if (cmd->sense_reason || cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
 			int rc;
 
 			rc = iscsit_dump_data_payload(cmd->conn,



  parent reply	other threads:[~2013-09-12 18:20 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-12 18:14 [ 00/16] 3.11.1-stable review Greg Kroah-Hartman
2013-09-12 18:14 ` [ 01/16] target: Fix trailing ASCII space usage in INQUIRY vendor+model Greg Kroah-Hartman
2013-09-12 18:14 ` Greg Kroah-Hartman [this message]
2013-09-12 18:14 ` [ 03/16] iscsi-target: Fix iscsit_transport reference leak during NP thread reset Greg Kroah-Hartman
2013-09-12 18:14 ` [ 04/16] iscsi-target: Fix potential NULL pointer in solicited NOPOUT reject Greg Kroah-Hartman
2013-09-12 18:14 ` [ 05/16] target: Fix se_cmd->state_list leak regression during WRITE failure Greg Kroah-Hartman
2013-09-12 18:14 ` [ 06/16] mei: me: fix hardware reset flow Greg Kroah-Hartman
2013-09-12 18:14 ` [ 07/16] usb: acm gadget: Null termintate strings table Greg Kroah-Hartman
2013-09-12 18:15 ` [ 08/16] hwmon: (k10temp) Add support for Fam16h (Kabini) Greg Kroah-Hartman
2013-09-12 18:15 ` [ 09/16] Drivers: hv: vmbus: Fix a bug in the handling of channel offers Greg Kroah-Hartman
2013-09-12 18:15 ` [ 10/16] ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT Greg Kroah-Hartman
2013-09-12 18:15 ` [ 11/16] drivers/misc/hpilo: Correct panic when an AUX iLO is detected Greg Kroah-Hartman
2013-09-12 18:15 ` [ 12/16] ASoC: fsl: Fix module build Greg Kroah-Hartman
2013-09-12 18:15 ` [ 13/16] imx-drm: imx-drm-core: Export imx_drm_encoder_get_mux_id Greg Kroah-Hartman
2013-09-12 18:15 ` [ 14/16] crypto: xor - Check for osxsave as well as avx in crypto/xor Greg Kroah-Hartman
2013-09-12 18:15   ` Greg Kroah-Hartman
2013-09-12 18:15 ` [ 15/16] drivers/rtc/rtc-max77686.c: Fix wrong register Greg Kroah-Hartman
2013-09-12 18:15 ` [ 16/16] mwifiex: do not create AP and P2P interfaces upon driver loading Greg Kroah-Hartman
2013-09-12 18:17 ` [ 00/16] 3.11.1-stable review Linus Torvalds
2013-09-12 18:18   ` Linus Torvalds
2013-09-12 18:22     ` Greg Kroah-Hartman
2013-09-12 18:27       ` Greg Kroah-Hartman
2013-09-12 21:41         ` Stefan Lippers-Hollmann
2013-09-12 21:52           ` Greg Kroah-Hartman
2013-09-13 22:59         ` Shuah Khan
2013-09-13 23:03           ` Greg Kroah-Hartman
2013-09-12 22:37 ` Guenter Roeck
2013-09-12 23:07   ` Greg Kroah-Hartman
2013-09-13  0:12     ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130912181156.476451115@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nab@linux-iscsi.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.