diff options
author | Christoph Hellwig <hch@lst.de> | 2017-01-03 06:28:41 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-01-27 23:08:35 +0100 |
commit | 0a6ac4ee7c21098cb0e41cc4053b9d9ddc9e70a1 (patch) | |
tree | 54f19534fd4654192c2d9b583eb85ae97f491aa2 /drivers/scsi/hosts.c | |
parent | scsi: remove gfp_flags member in scsi_host_cmd_pool (diff) | |
download | linux-0a6ac4ee7c21098cb0e41cc4053b9d9ddc9e70a1.tar.xz linux-0a6ac4ee7c21098cb0e41cc4053b9d9ddc9e70a1.zip |
scsi: respect unchecked_isa_dma for blk-mq
Currently blk-mq always allocates the sense buffer using normal GFP_KERNEL
allocation. Refactor the cmd pool code to split the cmd and sense allocation
and share the code to allocate the sense buffers as well as the sense buffer
slab caches between the legacy and blk-mq path.
Note that this switches to lazy allocation of the sense slab caches - the
slab caches (not the actual allocations) won't be destroy until the scsi
module is unloaded instead of keeping track of hosts using them.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/scsi/hosts.c')
-rw-r--r-- | drivers/scsi/hosts.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index 258a3f9a2519..6d29c4ad9b15 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c @@ -213,6 +213,10 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, goto fail; } + error = scsi_init_sense_cache(shost); + if (error) + goto fail; + if (shost_use_blk_mq(shost)) { error = scsi_mq_setup_tags(shost); if (error) |