mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
target: Don't call TFO->write_pending if data_length == 0
commit 885e7b0e18 upstream.
If an initiator sends a zero-length command (e.g. TEST UNIT READY) but
sets the transfer direction in the transport layer to indicate a
data-out phase, we still shouldn't try to transfer data. At best it's
a NOP, and depending on the transport, we might crash on an
uninitialized sg list.
Reported-by: Craig Watson <craig.watson@vanguard-rugged.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4b5ba6a22b
commit
adbde413d0
|
|
@ -2128,7 +2128,7 @@ transport_generic_new_cmd(struct se_cmd *cmd)
|
|||
* and let it call back once the write buffers are ready.
|
||||
*/
|
||||
target_add_to_state_list(cmd);
|
||||
if (cmd->data_direction != DMA_TO_DEVICE) {
|
||||
if (cmd->data_direction != DMA_TO_DEVICE || cmd->data_length == 0) {
|
||||
target_execute_cmd(cmd);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user