[PATCH 0/3] tcm: Add native 32-byte CDB support

From: Nicholas A. Bellinger
Date: Fri Sep 17 2010 - 01:34:48 EST


From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>

Greetings jejb, mkp and Co,

This patch series adds support for native 32-byte CDB processing into TCM Core,
TCM subsystem plugins, and TCM_Loop virtual SCSI LLD.

The first patch adds the new TCM_MAX_COMMAND_SIZE=32 defintion and adds the necessary
LBA + transfer length extraction and generation methods for 32-byte CDBs following
SBC-4. This includes converting FILEIO, IBLOCK, PSCSI, RAMDISK and STGT subsystem
plugins to use the new TCM_MAX_COMMAND_SIZE value for their own per struct se_task
context descriptor internal inline CDB size defines.

The second patch adds proper VARIABLE_LENGTH_CMD support together with XDWRITE_READ_32
emulation following the recent patch adding support for XDWRITE_READ_10.

And the third and final patch updates the TCM_Loop fabric module to signal the
Linux/SCSI midlayer that we are now capable of processing up to 32-byte CDBs.

Also, I ended up adding support for XDWRITE_READ_32 into Tomo's sgv4-utils.git in
order to test this series. Please have look and let me know what you think Tomo!

http://linux-iscsi.org/builds/user/nab/0001-sgv4_xdwriteread-Add-support-for-XDWRITEREAD_32.patch

Many thanks to jejb and mkp for answering my questions about > 16 byte CDB support!

Signed-off-by: Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx>

Nicholas Bellinger (3):
tcm: Add native 32-byte CDB support
tcm: Add VARIABLE_LENGTH_CMD support w/ XDWRITE_READ_32 emulation
tcm_loop: Enable 32-byte CDB support in virtual SCSI LLD

drivers/target/target_core_file.h | 2 +-
drivers/target/target_core_iblock.h | 2 +-
drivers/target/target_core_pscsi.c | 2 +-
drivers/target/target_core_pscsi.h | 2 +-
drivers/target/target_core_rd.h | 2 +-
drivers/target/target_core_scdb.c | 38 ++++++++++++
drivers/target/target_core_scdb.h | 2 +
drivers/target/target_core_stgt.h | 2 +-
drivers/target/target_core_transport.c | 94 +++++++++++++++++++++++++++----
drivers/target/tcm_loop/tcm_loop_core.h | 2 +-
include/target/target_core_base.h | 13 ++++
11 files changed, 142 insertions(+), 19 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/