All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback()
@ 2018-11-05 17:23 Bart Van Assche
  2018-11-05 17:55 ` David Disseldorp
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Bart Van Assche @ 2018-11-05 17:23 UTC (permalink / raw)
  To: target-devel

Fixes: aa73237dcb2d ("scsi: target/core: Always call transport_complete_callback() upon failure")
Cc: Nicholas Bellinger <nab@linux-iscsi.org>
Cc: Mike Christie <mchristi@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---

Hi Martin,

This patch fixes a bug that was introduced during the merge window. Please consider
this patch for a v4.20-rc<n> kernel.

 drivers/target/target_core_sbc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
index 1ac1f7d2e6c9..7c8433e32906 100644
--- a/drivers/target/target_core_sbc.c
+++ b/drivers/target/target_core_sbc.c
@@ -480,7 +480,8 @@ static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool succes
 	if (cmd->scsi_status) {
 		pr_debug("compare_and_write_callback: non zero scsi_status:"
 			" 0x%02x\n", cmd->scsi_status);
-		*post_ret = 1;
+		if (post_ret)
+			*post_ret = 1;
 		if (cmd->scsi_status = SAM_STAT_CHECK_CONDITION)
 			ret = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
 		goto out;
-- 
2.19.1.930.g4563a0d9d0-goog

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback()
  2018-11-05 17:23 [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback() Bart Van Assche
@ 2018-11-05 17:55 ` David Disseldorp
  2018-11-05 19:09 ` David Disseldorp
  2018-11-05 19:15 ` Bart Van Assche
  2 siblings, 0 replies; 4+ messages in thread
From: David Disseldorp @ 2018-11-05 17:55 UTC (permalink / raw)
  To: target-devel

Hi Bart,

On Mon,  5 Nov 2018 09:23:17 -0800, Bart Van Assche wrote:

> Fixes: aa73237dcb2d ("scsi: target/core: Always call transport_complete_callback() upon failure")
...
> This patch fixes a bug that was introduced during the merge window. Please consider
> this patch for a v4.20-rc<n> kernel.
> 
>  drivers/target/target_core_sbc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
> index 1ac1f7d2e6c9..7c8433e32906 100644
> --- a/drivers/target/target_core_sbc.c
> +++ b/drivers/target/target_core_sbc.c
> @@ -480,7 +480,8 @@ static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool succes
>  	if (cmd->scsi_status) {
>  		pr_debug("compare_and_write_callback: non zero scsi_status:"
>  			" 0x%02x\n", cmd->scsi_status);
> -		*post_ret = 1;
> +		if (post_ret)
> +			*post_ret = 1;
>  		if (cmd->scsi_status = SAM_STAT_CHECK_CONDITION)
>  			ret = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
>  		goto out;

IIUC, this still leaves compare_and_write_post() with a potential NULL
post_ret deref. My preference would be to just go back to having the
unused variable provided by the transport_generic_request_failure()
caller.

Cheers, David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback()
  2018-11-05 17:23 [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback() Bart Van Assche
  2018-11-05 17:55 ` David Disseldorp
@ 2018-11-05 19:09 ` David Disseldorp
  2018-11-05 19:15 ` Bart Van Assche
  2 siblings, 0 replies; 4+ messages in thread
From: David Disseldorp @ 2018-11-05 19:09 UTC (permalink / raw)
  To: target-devel

On Mon, 5 Nov 2018 18:55:23 +0100, David Disseldorp wrote:

> IIUC, this still leaves compare_and_write_post() with a potential NULL
> post_ret deref.

Actually, I missed that aa73237dcb2d also added the if(success) check
there. Either way, I find your latter fix easier to follow.

Cheers, David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback()
  2018-11-05 17:23 [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback() Bart Van Assche
  2018-11-05 17:55 ` David Disseldorp
  2018-11-05 19:09 ` David Disseldorp
@ 2018-11-05 19:15 ` Bart Van Assche
  2 siblings, 0 replies; 4+ messages in thread
From: Bart Van Assche @ 2018-11-05 19:15 UTC (permalink / raw)
  To: target-devel

On Mon, 2018-11-05 at 18:55 +-0100, David Disseldorp wrote:
+AD4 Hi Bart,
+AD4 
+AD4 On Mon,  5 Nov 2018 09:23:17 -0800, Bart Van Assche wrote:
+AD4 
+AD4 +AD4 Fixes: aa73237dcb2d (+ACI-scsi: target/core: Always call transport+AF8-complete+AF8-callback() upon failure+ACI)
+AD4 
+AD4 ...
+AD4 +AD4 This patch fixes a bug that was introduced during the merge window. Please consider
+AD4 +AD4 this patch for a v4.20-rc+ADw-n+AD4 kernel.
+AD4 +AD4 
+AD4 +AD4  drivers/target/target+AF8-core+AF8-sbc.c +AHw 3 +-+--
+AD4 +AD4  1 file changed, 2 insertions(+-), 1 deletion(-)
+AD4 +AD4 
+AD4 +AD4 diff --git a/drivers/target/target+AF8-core+AF8-sbc.c b/drivers/target/target+AF8-core+AF8-sbc.c
+AD4 +AD4 index 1ac1f7d2e6c9..7c8433e32906 100644
+AD4 +AD4 --- a/drivers/target/target+AF8-core+AF8-sbc.c
+AD4 +AD4 +-+-+- b/drivers/target/target+AF8-core+AF8-sbc.c
+AD4 +AD4 +AEAAQA -480,7 +-480,8 +AEAAQA static sense+AF8-reason+AF8-t compare+AF8-and+AF8-write+AF8-callback(struct se+AF8-cmd +ACo-cmd, bool succes
+AD4 +AD4  	if (cmd-+AD4-scsi+AF8-status) +AHs
+AD4 +AD4  		pr+AF8-debug(+ACI-compare+AF8-and+AF8-write+AF8-callback: non zero scsi+AF8-status:+ACI
+AD4 +AD4  			+ACI 0x+ACU-02x+AFw-n+ACI, cmd-+AD4-scsi+AF8-status)+ADs
+AD4 +AD4 -		+ACo-post+AF8-ret +AD0 1+ADs
+AD4 +AD4 +-		if (post+AF8-ret)
+AD4 +AD4 +-			+ACo-post+AF8-ret +AD0 1+ADs
+AD4 +AD4  		if (cmd-+AD4-scsi+AF8-status +AD0APQ SAM+AF8-STAT+AF8-CHECK+AF8-CONDITION)
+AD4 +AD4  			ret +AD0 TCM+AF8-LOGICAL+AF8-UNIT+AF8-COMMUNICATION+AF8-FAILURE+ADs
+AD4 +AD4  		goto out+ADs
+AD4 
+AD4 IIUC, this still leaves compare+AF8-and+AF8-write+AF8-post() with a potential NULL
+AD4 post+AF8-ret deref. My preference would be to just go back to having the
+AD4 unused variable provided by the transport+AF8-generic+AF8-request+AF8-failure()
+AD4 caller.

Hi David,

A second version that follows your proposal but that does not reintroduce the
+ACI-unused variable+ACI warning has been posted. Further feedback is welcome.

Bart.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-11-05 19:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-05 17:23 [PATCH] target/core: Make it safe to pass NULL as third argument to compare_and_write_callback() Bart Van Assche
2018-11-05 17:55 ` David Disseldorp
2018-11-05 19:09 ` David Disseldorp
2018-11-05 19:15 ` Bart Van Assche

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.