[Patch] ibmvscsi compatibility fix

Dave C Boutcher
2005-09-13T15:09:07Z

Linda Xie ever so gently pointed out that she had a patch
to preserve compatibility with older SLES targets, and I told
her we didn't need to push it to mainline.

This patch explicitly checks the version of the IBMVSCSI target
and ensures that large scatterlists are not sent to older
targets.

Andrew, while this stuff usually goes through James, it would
probably make Serge happier if you could pick it up for the next
mm.

Signed-off-by: Linda Xie <lxie@us.ibm.com>
Signed-off-by: Dave Boutcher <boutcher@us.ibm.com>

--- linux-2.6.13-mm3-orig/drivers/scsi/ibmvscsi/ibmvscsi.c 2005-09-13 09:50:31.000000000 -0500
+++ linux-2.6.13.1/drivers/scsi/ibmvscsi/ibmvscsi.c 2005-09-13 09:09:41.000000000 -0500
@@ -727,6 +727,16 @@
if (hostdata->madapter_info.port_max_txu[0])
hostdata->host->max_sectors =
hostdata->madapter_info.port_max_txu[0] >> 9;
+
+ if (hostdata->madapter_info.os_type == 3 &&
+ strcmp(hostdata->madapter_info.srp_version, "1.6a") <= 0) {
+ printk("ibmvscsi: host (Ver. %s) doesn't support large"
+ "transfers\n",
+ hostdata->madapter_info.srp_version);
+ printk("ibmvscsi: limiting scatterlists to %d\n",
+ MAX_INDIRECT_BUFS);
+ hostdata->host->sg_tablesize = MAX_INDIRECT_BUFS;
+ }
}
}