+++ /dev/null
-diff -rup a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
---- a/drivers/infiniband/ulp/srp/ib_srp.c 2012-05-29 13:39:21.000000000 -0400
-+++ b/drivers/infiniband/ulp/srp/ib_srp.c 2012-05-29 13:50:43.000000000 -0400
-@@ -1236,7 +1236,15 @@ static void srp_send_completion(struct i
- }
- }
-
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,37))
- static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd)
-+#elif ((LINUX_VERSION_CODE == KERNEL_VERSION(2,6,37))
-+static int srp_queuecommand_lck(struct scsi_cmnd *scmnd,
-+ void (*done)(struct scsi_cmnd *))
-+#else
-+static int srp_queuecommand(struct scsi_cmnd *scmnd,
-+ void (*done)(struct scsi_cmnd *))
-+#endif
- {
- struct srp_target_port *target = host_to_target(shost);
- struct srp_request *req;
-@@ -1252,7 +1260,11 @@ static int srp_queuecommand(struct Scsi_
- if (target->state == SRP_TARGET_DEAD ||
- target->state == SRP_TARGET_REMOVED) {
- scmnd->result = DID_BAD_TARGET << 16;
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,37))
- scmnd->scsi_done(scmnd);
-+#else
-+ done(scmnd);
-+#endif
- return 0;
- }
-
-@@ -1269,6 +1281,9 @@ static int srp_queuecommand(struct Scsi_
- ib_dma_sync_single_for_cpu(dev, iu->dma, target->max_iu_len,
- DMA_TO_DEVICE);
-
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-+ scmnd->scsi_done = done;
-+#endif
- scmnd->result = 0;
- scmnd->host_scribble = (void *) req;
-
-@@ -1316,6 +1331,10 @@ err:
- return SCSI_MLQUEUE_HOST_BUSY;
- }
-
-+#if ((LINUX_VERSION_CODE == KERNEL_VERSION(2,6,37))
-+static DEF_SCSI_QCMD(srp_queuecommand)
-+#endif
-+
- static int srp_alloc_iu_bufs(struct srp_target_port *target)
- {
- int i;