2015-07-22 22:01:58

by Spencer Baugh

[permalink] [raw]
Subject: [PATCH] target: improve unsupported opcode message

From: Joern Engel <[email protected]>

Make the warning about unsupported SCSI opcode more useful:

- Add in the initiator name so we know who's sending it.
- Print the warning even for opcodes that spc_parse_cdb() knows about
but that we don't handle.

Signed-off-by: Joern Engel <[email protected]>
Signed-off-by: Spencer Baugh <[email protected]>
---
drivers/target/target_core_spc.c | 3 ---
drivers/target/target_core_transport.c | 5 +++++
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index b074443..87d4adb 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -1405,9 +1405,6 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size)
}
break;
default:
- pr_warn("TARGET_CORE[%s]: Unsupported SCSI Opcode"
- " 0x%02x, sending CHECK_CONDITION.\n",
- cmd->se_tfo->get_fabric_name(), cdb[0]);
return TCM_UNSUPPORTED_SCSI_OPCODE;
}

diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index ce8574b..ac002a7 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1246,6 +1246,11 @@ target_setup_cmd_from_cdb(struct se_cmd *cmd, unsigned char *cdb)
}

ret = dev->transport->parse_cdb(cmd);
+ if (ret == TCM_UNSUPPORTED_SCSI_OPCODE)
+ pr_warn_ratelimited("%s/%s: Unsupported SCSI Opcode 0x%02x, sending CHECK_CONDITION.\n",
+ cmd->se_tfo->get_fabric_name(),
+ cmd->se_sess->se_node_acl->initiatorname,
+ cmd->t_task_cdb[0]);
if (ret)
return ret;

--
2.5.0.rc3


2015-07-23 09:39:39

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] target: improve unsupported opcode message

Looks good,

Reviewed-by: Christoph Hellwig <[email protected]>

2015-07-23 09:57:21

by Sagi Grimberg

[permalink] [raw]
Subject: Re: [PATCH] target: improve unsupported opcode message

On 7/23/2015 1:01 AM, Spencer Baugh wrote:
> From: Joern Engel <[email protected]>
>
> Make the warning about unsupported SCSI opcode more useful:
>
> - Add in the initiator name so we know who's sending it.
> - Print the warning even for opcodes that spc_parse_cdb() knows about
> but that we don't handle.
>
> Signed-off-by: Joern Engel <[email protected]>
> Signed-off-by: Spencer Baugh <[email protected]>

Looks good,

Reviewed-by: Sagi Grimberg <[email protected]>

2015-07-31 06:47:03

by Nicholas A. Bellinger

[permalink] [raw]
Subject: Re: [PATCH] target: improve unsupported opcode message

On Wed, 2015-07-22 at 15:01 -0700, Spencer Baugh wrote:
> From: Joern Engel <[email protected]>
>
> Make the warning about unsupported SCSI opcode more useful:
>
> - Add in the initiator name so we know who's sending it.
> - Print the warning even for opcodes that spc_parse_cdb() knows about
> but that we don't handle.
>
> Signed-off-by: Joern Engel <[email protected]>
> Signed-off-by: Spencer Baugh <[email protected]>
> ---
> drivers/target/target_core_spc.c | 3 ---
> drivers/target/target_core_transport.c | 5 +++++
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
> index b074443..87d4adb 100644
> --- a/drivers/target/target_core_spc.c
> +++ b/drivers/target/target_core_spc.c
> @@ -1405,9 +1405,6 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size)
> }
> break;
> default:
> - pr_warn("TARGET_CORE[%s]: Unsupported SCSI Opcode"
> - " 0x%02x, sending CHECK_CONDITION.\n",
> - cmd->se_tfo->get_fabric_name(), cdb[0]);
> return TCM_UNSUPPORTED_SCSI_OPCODE;
> }
>
> diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
> index ce8574b..ac002a7 100644
> --- a/drivers/target/target_core_transport.c
> +++ b/drivers/target/target_core_transport.c
> @@ -1246,6 +1246,11 @@ target_setup_cmd_from_cdb(struct se_cmd *cmd, unsigned char *cdb)
> }
>
> ret = dev->transport->parse_cdb(cmd);
> + if (ret == TCM_UNSUPPORTED_SCSI_OPCODE)
> + pr_warn_ratelimited("%s/%s: Unsupported SCSI Opcode 0x%02x, sending CHECK_CONDITION.\n",
> + cmd->se_tfo->get_fabric_name(),
> + cmd->se_sess->se_node_acl->initiatorname,
> + cmd->t_task_cdb[0]);
> if (ret)
> return ret;
>

Applied to target-pending/for-next.

Thanks Joern + Spencer!