--- linux-2.6.5-7.109.5orig/drivers/scsi/ibmvscsi/ibmvscsi.c 2004-10-22 08:44:04.000000000 -0500 +++ linux-2.6.5-7.109.5/drivers/scsi/ibmvscsi/ibmvscsi.c 2004-11-03 07:23:30.000000000 -0600 @@ -84,8 +84,9 @@ static int max_channel = 3; static int init_timeout = 5; static int max_requests = 50; +static int max_sectors = 32 * 8; /* default max I/O 32 pages */ -#define IBMVSCSI_VERSION "1.3.2" +#define IBMVSCSI_VERSION "1.3.3" MODULE_DESCRIPTION("IBM Virtual SCSI"); MODULE_AUTHOR("Dave Boutcher"); @@ -100,6 +101,8 @@ MODULE_PARM_DESC(init_timeout, "Initialization timeout in seconds"); module_param_named(max_requests, max_requests, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(max_requests, "Maximum requests for this adapter"); +module_param_named(max_sectors, max_sectors, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(max_sectors, "Maximum sectors per request for this adapter"); /* ------------------------------------------------------------ * Routines for the event pool and event structs @@ -690,11 +693,16 @@ evt_struct->evt->mad.adapter_info.common.status); } else { printk("ibmvscsi: host srp version: %s, " - "host partition %s (%d), OS %d\n", + "host partition %s (%d), OS %d, max io %u\n", hostdata->madapter_info.srp_version, hostdata->madapter_info.partition_name, hostdata->madapter_info.partition_number, - hostdata->madapter_info.os_type); + hostdata->madapter_info.os_type, + hostdata->madapter_info.port_max_txu[0]); + + if (hostdata->madapter_info.port_max_txu[0]) + hostdata->host->max_sectors = + hostdata->madapter_info.port_max_txu[0] >> 9; } } @@ -1319,6 +1327,7 @@ hostdata->host = host; hostdata->dev = dev; atomic_set(&hostdata->request_limit, -1); + hostdata->host->max_sectors = max_sectors; if (ibmvscsi_init_crq_queue(&hostdata->queue, hostdata, max_requests) != 0) {