diff for duplicates of <20080625201933.GS17020@linux.vnet.ibm.com> diff --git a/a/1.txt b/N1/1.txt index 01edea3..614ec09 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,4 +1,4 @@ -From: Robert Jennings <rcj@linux.vnet.ibm.com> +=46rom: Robert Jennings <rcj@linux.vnet.ibm.com> Enable the driver to function in a Cooperative Memory Overcommitment (CMO) environment. @@ -13,12 +13,15 @@ The following changes are made to enable the driver for CMO: Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com> --- - drivers/scsi/ibmvscsi/ibmvscsi.c | 46 +++++++++++++++++++++++++++++++++------ + drivers/scsi/ibmvscsi/ibmvscsi.c | 46 +++++++++++++++++++++++++++++++++-= +----- drivers/scsi/ibmvscsi/ibmvscsi.h | 2 ++ 2 files changed, 41 insertions(+), 7 deletions(-) Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c -=================================================================== +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c @@ -72,6 +72,8 @@ @@ -30,7 +33,7 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c #include <scsi/scsi.h> #include <scsi/scsi_cmnd.h> #include <scsi/scsi_host.h> -@@ -426,8 +428,10 @@ static int map_sg_data(struct scsi_cmnd +@@ -426,8 +428,10 @@ static int map_sg_data(struct scsi_cmnd=20 SG_ALL * sizeof(struct srp_direct_buf), &evt_struct->ext_list_token, 0); if (!evt_struct->ext_list) { @@ -43,9 +46,9 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c return 0; } } -@@ -743,7 +747,9 @@ static int ibmvscsi_queuecommand(struct - srp_cmd->lun = ((u64) lun) << 48; - +@@ -743,7 +747,9 @@ static int ibmvscsi_queuecommand(struct=20 + srp_cmd->lun =3D ((u64) lun) << 48; +=20 if (!map_data_for_srp_cmd(cmnd, evt_struct, srp_cmd, hostdata->dev)) { - sdev_printk(KERN_ERR, cmnd->device, "couldn't convert cmd to srp_cmd\n"); + if (!firmware_has_feature(FW_FEATURE_CMO)) @@ -56,9 +59,10 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c } @@ -855,7 +861,10 @@ static void send_mad_adapter_info(struct DMA_BIDIRECTIONAL); - +=20 if (dma_mapping_error(req->buffer)) { -- dev_err(hostdata->dev, "Unable to map request_buffer for adapter_info!\n"); +- dev_err(hostdata->dev, "Unable to map request_buffer for adapter_info!\n= +"); + if (!firmware_has_feature(FW_FEATURE_CMO)) + dev_err(hostdata->dev, + "Unable to map request_buffer for " @@ -68,7 +72,7 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c } @@ -1400,7 +1409,9 @@ static int ibmvscsi_do_host_config(struc DMA_BIDIRECTIONAL); - +=20 if (dma_mapping_error(host_config->buffer)) { - dev_err(hostdata->dev, "dma_mapping error getting host config\n"); + if (!firmware_has_feature(FW_FEATURE_CMO)) @@ -78,19 +82,20 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c return -1; } @@ -1604,7 +1615,7 @@ static struct scsi_host_template driver_ - .eh_host_reset_handler = ibmvscsi_eh_host_reset_handler, - .slave_configure = ibmvscsi_slave_configure, - .change_queue_depth = ibmvscsi_change_queue_depth, -- .cmd_per_lun = 16, -+ .cmd_per_lun = IBMVSCSI_CMDS_PER_LUN_DEFAULT, - .can_queue = IBMVSCSI_MAX_REQUESTS_DEFAULT, - .this_id = -1, - .sg_tablesize = SG_ALL, + .eh_host_reset_handler =3D ibmvscsi_eh_host_reset_handler, + .slave_configure =3D ibmvscsi_slave_configure, + .change_queue_depth =3D ibmvscsi_change_queue_depth, +- .cmd_per_lun =3D 16, ++ .cmd_per_lun =3D IBMVSCSI_CMDS_PER_LUN_DEFAULT, + .can_queue =3D IBMVSCSI_MAX_REQUESTS_DEFAULT, + .this_id =3D -1, + .sg_tablesize =3D SG_ALL, @@ -1613,6 +1624,26 @@ static struct scsi_host_template driver_ }; - +=20 /** -+ * ibmvscsi_get_io_entitlement - Calculate IO entitlement needed by the driver ++ * ibmvscsi_get_io_entitlement - Calculate IO entitlement needed by the dr= +iver + * + * @vdev: struct vio_dev for the device whose entitlement is to be returned + * @@ -100,10 +105,10 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c +static unsigned long ibmvscsi_get_io_entitlement(struct vio_dev *vdev) +{ + /* iu_storage data allocated in initialize_event_pool */ -+ unsigned long io_entitlement = max_requests * sizeof(union viosrp_iu); ++ unsigned long io_entitlement =3D max_requests * sizeof(union viosrp_iu); + + /* add io space for sg data */ -+ io_entitlement += (IBMVSCSI_MAX_SECTORS_DEFAULT * ++ io_entitlement +=3D (IBMVSCSI_MAX_SECTORS_DEFAULT * + IBMVSCSI_CMDS_PER_LUN_DEFAULT); + + return IOMMU_PAGE_ALIGN(io_entitlement); @@ -112,34 +117,39 @@ Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c +/** * Called by bus code for each adapter */ - static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id) + static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id= + *id) @@ -1641,7 +1672,7 @@ static int ibmvscsi_probe(struct vio_dev - hostdata->host = host; - hostdata->dev = dev; + hostdata->host =3D host; + hostdata->dev =3D dev; atomic_set(&hostdata->request_limit, -1); -- hostdata->host->max_sectors = 32 * 8; /* default max I/O 32 pages */ -+ hostdata->host->max_sectors = IBMVSCSI_MAX_SECTORS_DEFAULT; - - rc = ibmvscsi_ops->init_crq_queue(&hostdata->queue, hostdata, max_requests); - if (rc != 0 && rc != H_RESOURCE) { +- hostdata->host->max_sectors =3D 32 * 8; /* default max I/O 32 pages */ ++ hostdata->host->max_sectors =3D IBMVSCSI_MAX_SECTORS_DEFAULT; +=20 + rc =3D ibmvscsi_ops->init_crq_queue(&hostdata->queue, hostdata, max_reque= +sts); + if (rc !=3D 0 && rc !=3D H_RESOURCE) { @@ -1735,6 +1766,7 @@ static struct vio_driver ibmvscsi_driver - .id_table = ibmvscsi_device_table, - .probe = ibmvscsi_probe, - .remove = ibmvscsi_remove, -+ .get_io_entitlement = ibmvscsi_get_io_entitlement, - .driver = { - .name = "ibmvscsi", - .owner = THIS_MODULE, + .id_table =3D ibmvscsi_device_table, + .probe =3D ibmvscsi_probe, + .remove =3D ibmvscsi_remove, ++ .get_io_entitlement =3D ibmvscsi_get_io_entitlement, + .driver =3D { + .name =3D "ibmvscsi", + .owner =3D THIS_MODULE, Index: b/drivers/scsi/ibmvscsi/ibmvscsi.h -=================================================================== +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/drivers/scsi/ibmvscsi/ibmvscsi.h +++ b/drivers/scsi/ibmvscsi/ibmvscsi.h @@ -45,6 +45,8 @@ struct Scsi_Host; #define MAX_INDIRECT_BUFS 10 - +=20 #define IBMVSCSI_MAX_REQUESTS_DEFAULT 100 +#define IBMVSCSI_CMDS_PER_LUN_DEFAULT 16 -+#define IBMVSCSI_MAX_SECTORS_DEFAULT 256 /* 32 * 8 = default max I/O 32 pages */ ++#define IBMVSCSI_MAX_SECTORS_DEFAULT 256 /* 32 * 8 =3D default max I/O 32 = +pages */ #define IBMVSCSI_MAX_CMDS_PER_LUN 64 - +=20 /* ------------------------------------------------------------ diff --git a/a/content_digest b/N1/content_digest index 3f99115..6489920 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,15 +3,13 @@ "Subject\0[PATCH 17/18 v2] ibmvscsi: driver enablement for CMO\0" "Date\0Wed, 25 Jun 2008 15:19:33 -0500\0" "To\0paulus@samba.org\0" - "Cc\0linuxppc-dev@ozlabs.org" - linux-scsi@vger.kernel.org - Brian King <brking@linux.vnet.ibm.com> - Santiago Leon <santil@us.ibm.com> - Nathan Fontenot <nfont@austin.ibm.com> - " David Darrington <ddarring@linux.vnet.ibm.com>\0" + "Cc\0linux-scsi@vger.kernel.org" + linuxppc-dev@ozlabs.org + David Darrington <ddarring@linux.vnet.ibm.com> + " Brian King <brking@linux.vnet.ibm.com>\0" "\00:1\0" "b\0" - "From: Robert Jennings <rcj@linux.vnet.ibm.com>\n" + "=46rom: Robert Jennings <rcj@linux.vnet.ibm.com>\n" "\n" "Enable the driver to function in a Cooperative Memory Overcommitment (CMO)\n" "environment.\n" @@ -26,12 +24,15 @@ "Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>\n" "\n" "---\n" - " drivers/scsi/ibmvscsi/ibmvscsi.c | 46 +++++++++++++++++++++++++++++++++------\n" + " drivers/scsi/ibmvscsi/ibmvscsi.c | 46 +++++++++++++++++++++++++++++++++-=\n" + "-----\n" " drivers/scsi/ibmvscsi/ibmvscsi.h | 2 ++\n" " 2 files changed, 41 insertions(+), 7 deletions(-)\n" "\n" "Index: b/drivers/scsi/ibmvscsi/ibmvscsi.c\n" - "===================================================================\n" + "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n" + "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n" + "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" "--- a/drivers/scsi/ibmvscsi/ibmvscsi.c\n" "+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c\n" "@@ -72,6 +72,8 @@\n" @@ -43,7 +44,7 @@ " #include <scsi/scsi.h>\n" " #include <scsi/scsi_cmnd.h>\n" " #include <scsi/scsi_host.h>\n" - "@@ -426,8 +428,10 @@ static int map_sg_data(struct scsi_cmnd \n" + "@@ -426,8 +428,10 @@ static int map_sg_data(struct scsi_cmnd=20\n" " \t\t\t\t\t SG_ALL * sizeof(struct srp_direct_buf),\n" " \t\t\t\t\t &evt_struct->ext_list_token, 0);\n" " \t\tif (!evt_struct->ext_list) {\n" @@ -56,9 +57,9 @@ " \t\t\treturn 0;\n" " \t\t}\n" " \t}\n" - "@@ -743,7 +747,9 @@ static int ibmvscsi_queuecommand(struct \n" - " \tsrp_cmd->lun = ((u64) lun) << 48;\n" - " \n" + "@@ -743,7 +747,9 @@ static int ibmvscsi_queuecommand(struct=20\n" + " \tsrp_cmd->lun =3D ((u64) lun) << 48;\n" + "=20\n" " \tif (!map_data_for_srp_cmd(cmnd, evt_struct, srp_cmd, hostdata->dev)) {\n" "-\t\tsdev_printk(KERN_ERR, cmnd->device, \"couldn't convert cmd to srp_cmd\\n\");\n" "+\t\tif (!firmware_has_feature(FW_FEATURE_CMO))\n" @@ -69,9 +70,10 @@ " \t}\n" "@@ -855,7 +861,10 @@ static void send_mad_adapter_info(struct\n" " \t\t\t\t\t DMA_BIDIRECTIONAL);\n" - " \n" + "=20\n" " \tif (dma_mapping_error(req->buffer)) {\n" - "-\t\tdev_err(hostdata->dev, \"Unable to map request_buffer for adapter_info!\\n\");\n" + "-\t\tdev_err(hostdata->dev, \"Unable to map request_buffer for adapter_info!\\n=\n" + "\");\n" "+\t\tif (!firmware_has_feature(FW_FEATURE_CMO))\n" "+\t\t\tdev_err(hostdata->dev,\n" "+\t\t\t \"Unable to map request_buffer for \"\n" @@ -81,7 +83,7 @@ " \t}\n" "@@ -1400,7 +1409,9 @@ static int ibmvscsi_do_host_config(struc\n" " \t\t\t\t\t\t DMA_BIDIRECTIONAL);\n" - " \n" + "=20\n" " \tif (dma_mapping_error(host_config->buffer)) {\n" "-\t\tdev_err(hostdata->dev, \"dma_mapping error getting host config\\n\");\n" "+\t\tif (!firmware_has_feature(FW_FEATURE_CMO))\n" @@ -91,19 +93,20 @@ " \t\treturn -1;\n" " \t}\n" "@@ -1604,7 +1615,7 @@ static struct scsi_host_template driver_\n" - " \t.eh_host_reset_handler = ibmvscsi_eh_host_reset_handler,\n" - " \t.slave_configure = ibmvscsi_slave_configure,\n" - " \t.change_queue_depth = ibmvscsi_change_queue_depth,\n" - "-\t.cmd_per_lun = 16,\n" - "+\t.cmd_per_lun = IBMVSCSI_CMDS_PER_LUN_DEFAULT,\n" - " \t.can_queue = IBMVSCSI_MAX_REQUESTS_DEFAULT,\n" - " \t.this_id = -1,\n" - " \t.sg_tablesize = SG_ALL,\n" + " \t.eh_host_reset_handler =3D ibmvscsi_eh_host_reset_handler,\n" + " \t.slave_configure =3D ibmvscsi_slave_configure,\n" + " \t.change_queue_depth =3D ibmvscsi_change_queue_depth,\n" + "-\t.cmd_per_lun =3D 16,\n" + "+\t.cmd_per_lun =3D IBMVSCSI_CMDS_PER_LUN_DEFAULT,\n" + " \t.can_queue =3D IBMVSCSI_MAX_REQUESTS_DEFAULT,\n" + " \t.this_id =3D -1,\n" + " \t.sg_tablesize =3D SG_ALL,\n" "@@ -1613,6 +1624,26 @@ static struct scsi_host_template driver_\n" " };\n" - " \n" + "=20\n" " /**\n" - "+ * ibmvscsi_get_io_entitlement - Calculate IO entitlement needed by the driver\n" + "+ * ibmvscsi_get_io_entitlement - Calculate IO entitlement needed by the dr=\n" + "iver\n" "+ *\n" "+ * @vdev: struct vio_dev for the device whose entitlement is to be returned\n" "+ *\n" @@ -113,10 +116,10 @@ "+static unsigned long ibmvscsi_get_io_entitlement(struct vio_dev *vdev)\n" "+{\n" "+\t/* iu_storage data allocated in initialize_event_pool */\n" - "+\tunsigned long io_entitlement = max_requests * sizeof(union viosrp_iu);\n" + "+\tunsigned long io_entitlement =3D max_requests * sizeof(union viosrp_iu);\n" "+\n" "+\t/* add io space for sg data */\n" - "+\tio_entitlement += (IBMVSCSI_MAX_SECTORS_DEFAULT *\n" + "+\tio_entitlement +=3D (IBMVSCSI_MAX_SECTORS_DEFAULT *\n" "+\t IBMVSCSI_CMDS_PER_LUN_DEFAULT);\n" "+\n" "+\treturn IOMMU_PAGE_ALIGN(io_entitlement);\n" @@ -125,36 +128,41 @@ "+/**\n" " * Called by bus code for each adapter\n" " */\n" - " static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id)\n" + " static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id=\n" + " *id)\n" "@@ -1641,7 +1672,7 @@ static int ibmvscsi_probe(struct vio_dev\n" - " \thostdata->host = host;\n" - " \thostdata->dev = dev;\n" + " \thostdata->host =3D host;\n" + " \thostdata->dev =3D dev;\n" " \tatomic_set(&hostdata->request_limit, -1);\n" - "-\thostdata->host->max_sectors = 32 * 8; /* default max I/O 32 pages */\n" - "+\thostdata->host->max_sectors = IBMVSCSI_MAX_SECTORS_DEFAULT;\n" - " \n" - " \trc = ibmvscsi_ops->init_crq_queue(&hostdata->queue, hostdata, max_requests);\n" - " \tif (rc != 0 && rc != H_RESOURCE) {\n" + "-\thostdata->host->max_sectors =3D 32 * 8; /* default max I/O 32 pages */\n" + "+\thostdata->host->max_sectors =3D IBMVSCSI_MAX_SECTORS_DEFAULT;\n" + "=20\n" + " \trc =3D ibmvscsi_ops->init_crq_queue(&hostdata->queue, hostdata, max_reque=\n" + "sts);\n" + " \tif (rc !=3D 0 && rc !=3D H_RESOURCE) {\n" "@@ -1735,6 +1766,7 @@ static struct vio_driver ibmvscsi_driver\n" - " \t.id_table = ibmvscsi_device_table,\n" - " \t.probe = ibmvscsi_probe,\n" - " \t.remove = ibmvscsi_remove,\n" - "+\t.get_io_entitlement = ibmvscsi_get_io_entitlement,\n" - " \t.driver = {\n" - " \t\t.name = \"ibmvscsi\",\n" - " \t\t.owner = THIS_MODULE,\n" + " \t.id_table =3D ibmvscsi_device_table,\n" + " \t.probe =3D ibmvscsi_probe,\n" + " \t.remove =3D ibmvscsi_remove,\n" + "+\t.get_io_entitlement =3D ibmvscsi_get_io_entitlement,\n" + " \t.driver =3D {\n" + " \t\t.name =3D \"ibmvscsi\",\n" + " \t\t.owner =3D THIS_MODULE,\n" "Index: b/drivers/scsi/ibmvscsi/ibmvscsi.h\n" - "===================================================================\n" + "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n" + "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n" + "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" "--- a/drivers/scsi/ibmvscsi/ibmvscsi.h\n" "+++ b/drivers/scsi/ibmvscsi/ibmvscsi.h\n" "@@ -45,6 +45,8 @@ struct Scsi_Host;\n" " #define MAX_INDIRECT_BUFS 10\n" - " \n" + "=20\n" " #define IBMVSCSI_MAX_REQUESTS_DEFAULT 100\n" "+#define IBMVSCSI_CMDS_PER_LUN_DEFAULT 16\n" - "+#define IBMVSCSI_MAX_SECTORS_DEFAULT 256 /* 32 * 8 = default max I/O 32 pages */\n" + "+#define IBMVSCSI_MAX_SECTORS_DEFAULT 256 /* 32 * 8 =3D default max I/O 32 =\n" + "pages */\n" " #define IBMVSCSI_MAX_CMDS_PER_LUN 64\n" - " \n" + "=20\n" /* ------------------------------------------------------------ -8c6294bb94c7c44dc8b255c5ca6267571c26ba77d07bb41113995792ef695f46 +74e6082a049d33965866dbac7c62d0719f873a39031a43f6a35af7fa3678cd38
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.