Re: [PATCH] target: Introduce TCM_NO_SENSE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/09/2013 02:04 AM, Nicholas A. Bellinger wrote:
On Mon, 2012-12-17 at 09:53 +0100, Hannes Reinecke wrote:
Introduce TCM_NO_SENSE, mapping to sense code
'Not ready, no additional sense information'.

Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
Cc: Nicholas Bellinger <nab@xxxxxxxxxxxxxxxxxxxxx>
---
  drivers/target/target_core_transport.c |   10 ++++++++++
  include/target/target_core_base.h      |    1 +
  2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 978762d..104bf3b 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -2597,6 +2597,16 @@ transport_send_check_condition_and_sense(struct se_cmd *cmd,
  	 * SENSE KEY values from include/scsi/scsi.h
  	 */
  	switch (reason) {
+	case TCM_NO_SENSE:
+		/* CURRENT ERROR */
+		buffer[0] = 0x70;
+		buffer[SPC_ADD_SENSE_LEN_OFFSET] = 10;
+		/* Not Ready */
+		buffer[SPC_SENSE_KEY_OFFSET] = NOT_READY;
+		/* NO ADDITIONAL SENSE INFORMATION */
+		buffer[SPC_ASC_KEY_OFFSET] = 0;
+		buffer[SPC_ASCQ_KEY_OFFSET] = 0;
+		break;
  	case TCM_NON_EXISTENT_LUN:
  		/* CURRENT ERROR */
  		buffer[0] = 0x70;
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
index 7cae236..663e34a 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -174,6 +174,7 @@ typedef unsigned __bitwise__ sense_reason_t;

  enum tcm_sense_reason_table {
  #define R(x)	(__force sense_reason_t )(x)
+	TCM_NO_SENSE				= R(0x00),
  	TCM_NON_EXISTENT_LUN			= R(0x01),
  	TCM_UNSUPPORTED_SCSI_OPCODE		= R(0x02),
  	TCM_INCORRECT_AMOUNT_OF_DATA		= R(0x03),

AFAICT, there is no way that TCM_NO_SENSE will ever get triggered with
0x00 in the __target_execute_cmd() -> cmd->execute_cmd() failure case,
as transport_send_check_condition_and_sense() is only called with a non
zero return..

True. TCM_NO_SENSE is more for completeness. It definitely _is_ a valid setting (the sense code will be initialized with 0), and compilers might be issuing a warning then.

But yeah, you're right. Strictly speaking it's not needed.

Cheers,

Hannes
--
Dr. Hannes Reinecke		      zSeries & Storage
hare@xxxxxxx			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux