summaryrefslogtreecommitdiffstats
path: root/include/scsi/scsi_host.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2014-02-20 23:21:01 +0100
committerJames Bottomley <JBottomley@Parallels.com>2014-03-27 16:26:33 +0100
commit89d9a567952baec13e26ada3e438f1b642d66b6e (patch)
treef6217370ee634dc3fa08228a0aa1073265aa13b7 /include/scsi/scsi_host.h
parent[SCSI] simplify command allocation and freeing a bit (diff)
downloadlinux-89d9a567952baec13e26ada3e438f1b642d66b6e.tar.xz
linux-89d9a567952baec13e26ada3e438f1b642d66b6e.zip
[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/scsi_host.h')
-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;
};
/*