summaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
authorRobert Elliott2014-09-02 18:38:44 +0200
committerJens Axboe2014-09-03 18:44:15 +0200
commit5676e7b6db02b80eafc2e3ad316d5f2fee817ecb (patch)
tree540c780f1bb691971d55bffdbecec972ffa5e5eb /arch/blackfin
parentblk-mq: pass along blk_mq_alloc_tag_set return values (diff)
downloadkernel-qcow2-linux-5676e7b6db02b80eafc2e3ad316d5f2fee817ecb.tar.gz
kernel-qcow2-linux-5676e7b6db02b80eafc2e3ad316d5f2fee817ecb.tar.xz
kernel-qcow2-linux-5676e7b6db02b80eafc2e3ad316d5f2fee817ecb.zip
blk-mq: cleanup after blk_mq_init_rq_map failures
In blk-mq.c blk_mq_alloc_tag_set, if: set->tags = kmalloc_node() succeeds, but one of the blk_mq_init_rq_map() calls fails, goto out_unwind; needs to free set->tags so the caller is not obligated to do so. None of the current callers (null_blk, virtio_blk, virtio_blk, or the forthcoming scsi-mq) do so. set->tags needs to be set to NULL after doing so, so other tag cleanup logic doesn't try to free a stale pointer later. Also set it to NULL in blk_mq_free_tag_set. Tested with error injection on the forthcoming scsi-mq + hpsa combination. Signed-off-by: Robert Elliott <elliott@hp.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'arch/blackfin')
0 files changed, 0 insertions, 0 deletions