From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Hi MKP, Sagi, Quinn & Co, This series allows fabric drivers to expose what TARGET_PROT hardware operations they support at session initialization time, along with adding proper WRITE_INSERT/READ_STRIP emulation support (as originally mentioned by Sagi) into target-core. This allows legacy initiator ports and/or legacy fabrics to interact using hardware (or software) offloads together with T10 PI enabled backend devices. The code allows for the same backend device to report PROTECT=1 across one protected fabric port, while reporting PROTECT=0 to another and performing locally generated WRITE_INSERT/READ_STRIP software operations. So far this is working across a RAMDISK_MCP backend using loopback in existing TARGET_PROT PASS mode, and a traditional iSCSI target port using WRITE_INSERT/READ_STRIP. Please review. --nab Nicholas Bellinger (9): target/iblock: Fix double bioset_integrity_free bug target: Pass in transport supported PI at session initialization target/spc: Only expose PI inquiry bits when supported by fabric target/spc: Only expose PI mode page bits when supported by fabric target/sbc: Only expose PI read_cap16 bits when supported by fabric target/sbc: Add sbc_dif_write_insert software emulation target: Enable WRITE_INSERT emulation in target_execute_cmd target/sbc: Add sbc_dif_read_strip software emulation target: Enable READ_STRIP emulation in target_complete_ok_work drivers/infiniband/ulp/isert/ib_isert.c | 13 +++++ drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 +- drivers/target/iscsi/iscsi_target.c | 6 +++ drivers/target/iscsi/iscsi_target_login.c | 4 +- drivers/target/loopback/tcm_loop.c | 2 +- drivers/target/sbp/sbp_target.c | 2 +- drivers/target/target_core_iblock.c | 5 +- drivers/target/target_core_sbc.c | 82 ++++++++++++++++++++++++++--- drivers/target/target_core_spc.c | 49 ++++++++++------- drivers/target/target_core_transport.c | 50 ++++++++++++++++-- drivers/target/tcm_fc/tfc_sess.c | 3 +- drivers/usb/gadget/tcm_usb_gadget.c | 2 +- drivers/vhost/scsi.c | 3 +- include/target/iscsi/iscsi_transport.h | 1 + include/target/target_core_backend.h | 2 + include/target/target_core_base.h | 19 ++++--- include/target/target_core_fabric.h | 5 +- 18 files changed, 205 insertions(+), 47 deletions(-) -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html