summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2018-11-29 13:56:54 +0300
committerJens Axboe <axboe@kernel.dk>2018-11-29 08:16:08 -0700
commit4e6db0f21c99c25980c8d183f95cdb6ad64cebd2 (patch)
tree97f2715ddaa0a87b7b79667856f0a05fc480efc0 /block
parent49379e6d1e9370d1e5dc09ca52aff29ae07c8ba6 (diff)
downloadlinux-4e6db0f21c99c25980c8d183f95cdb6ad64cebd2.tar.gz
linux-4e6db0f21c99c25980c8d183f95cdb6ad64cebd2.tar.bz2
linux-4e6db0f21c99c25980c8d183f95cdb6ad64cebd2.zip
blk-mq: Add a NULL check in blk_mq_free_map_and_requests()
I recently found some code which called blk_mq_free_map_and_requests() with a NULL set->tags pointer. I fixed the caller, but it seems like a good idea to add a NULL check here as well. Now we can call: blk_mq_free_tag_set(set); blk_mq_free_tag_set(set); twice in a row and it's harmless. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index a82830f39933..5f4b93f424b4 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2341,7 +2341,7 @@ static bool __blk_mq_alloc_rq_map(struct blk_mq_tag_set *set, int hctx_idx)
static void blk_mq_free_map_and_requests(struct blk_mq_tag_set *set,
unsigned int hctx_idx)
{
- if (set->tags[hctx_idx]) {
+ if (set->tags && set->tags[hctx_idx]) {
blk_mq_free_rqs(set, set->tags[hctx_idx], hctx_idx);
blk_mq_free_rq_map(set->tags[hctx_idx]);
set->tags[hctx_idx] = NULL;