On 06/09/2016 02:26 PM, Bryant G. Ly wrote:
drivers/scsi/Kconfig | 27 +-
drivers/scsi/Makefile | 2 +-
drivers/scsi/ibmvscsi/Makefile | 4 +
drivers/scsi/ibmvscsi/ibmvscsi_tgt.c | 4184 ++++++++++++++++++++++++++++++++++
drivers/scsi/ibmvscsi/ibmvscsi_tgt.h | 347 +++
drivers/scsi/ibmvscsi/libsrp.c | 427 ++++
drivers/scsi/ibmvscsi/libsrp.h | 123 +
drivers/scsi/libsrp.c | 447 ----
include/scsi/libsrp.h | 78 -
Sorry that I hadn't noticed this before but since no code is shared
between the IBM vSCSI initiator and target drivers please consider
moving the ibmvscsi_tgt.[ch] and libsrp.[ch] source files into a new
directory. This will keep initiator and target drivers are in separate
directories. This is the approach used for other upstream protocol
drivers for which no code is shared between initiator and target drivers
(e.g. the iSER, SRP initiator and target drivers).
+#include <linux/kthread.h>
Does this driver create kernel threads? Is inclusion of this header file
needed?
+#include <linux/version.h>
We do not want #if LINUX_VERSION_CODE < KERNEL_VERSION(...) statements
in upstream code so please leave this #include and the version tests out.
+/**
+ * ibmvscsis_modify_std_inquiry() - Modify STD Inquiry
+ *
+ * This function modifies the inquiry data prior to sending to initiator
+ * so that we can support current AIX. Internally we are going to
+ * add new ODM entries to support the emulation from LIO. This function
+ * is temporary until those changes are done.
+ */
+static void ibmvscsis_modify_std_inquiry(struct se_cmd *se_cmd)
+{
+ struct se_device *dev = se_cmd->se_dev;
+ u32 cmd_len = se_cmd->data_length;
+ u32 repl_len;
+ unsigned char *buf = NULL;
+
+ if (cmd_len <= 8)
+ return;
+
+ buf = transport_kmap_data_sg(se_cmd);
+ if (buf) {
+ repl_len = 8;
+ if (cmd_len - 8 < repl_len)
+ repl_len = cmd_len - 8;
+ memcpy(&buf[8], "IBM ", repl_len);
+
+ if (cmd_len > 16) {
+ repl_len = 16;
+ if (cmd_len - 16 < repl_len)
+ repl_len = cmd_len - 16;
+ if (dev->transport->get_device_type(dev) == TYPE_ROM)
+ memcpy(&buf[16], "VOPTA ", repl_len);
+ else
+ memcpy(&buf[16], "3303 NVDISK", repl_len);
+ }
+ if (cmd_len > 32) {
+ repl_len = 4;
+ if (cmd_len - 32 < repl_len)
+ repl_len = cmd_len - 32;
+ memcpy(&buf[32], "0001", repl_len);
+ }
+ transport_kunmap_data_sg(se_cmd);
+ }
+}
Christoph Hellwig had asked you *not* to modify the INQUIRY response
generated by the target core. Had you noticed that comment?
Thanks,
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html