summaryrefslogtreecommitdiff
path: root/include/scsi
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2014-02-21 02:21:01 +0400
committerJames Bottomley <JBottomley@Parallels.com>2014-03-27 19:26:33 +0400
commit89d9a567952baec13e26ada3e438f1b642d66b6e (patch)
treef6217370ee634dc3fa08228a0aa1073265aa13b7 /include/scsi
parent7c283341225d0ebeb7480a9e6560f599dcd0f417 (diff)
downloadlinux-89d9a567952baec13e26ada3e438f1b642d66b6e.tar.xz
[SCSI] add support for per-host cmd pools
This allows drivers to specify the size of their per-command private data in the host template and then get extra memory allocated for each command instead of needing another allocation in ->queuecommand. With the current SCSI code that already does multiple allocations for each command this probably doesn't make a big performance impact, but it allows to clean up the drivers, and prepare them for using the blk-mq infrastructure where the common allocation will make a difference. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/scsi_host.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
index 53075e5039e6..94844fc77b97 100644
--- a/include/scsi/scsi_host.h
+++ b/include/scsi/scsi_host.h
@@ -15,6 +15,7 @@ struct completion;
struct module;
struct scsi_cmnd;
struct scsi_device;
+struct scsi_host_cmd_pool;
struct scsi_target;
struct Scsi_Host;
struct scsi_host_cmd_pool;
@@ -524,6 +525,12 @@ struct scsi_host_template {
* scsi_netlink.h
*/
u64 vendor_id;
+
+ /*
+ * Additional per-command data allocated for the driver.
+ */
+ unsigned int cmd_size;
+ struct scsi_host_cmd_pool *cmd_pool;
};
/*