diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2018-11-29 13:56:54 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-11-29 08:16:08 -0700 |
commit | 4e6db0f21c99c25980c8d183f95cdb6ad64cebd2 (patch) | |
tree | 97f2715ddaa0a87b7b79667856f0a05fc480efc0 /block | |
parent | 49379e6d1e9370d1e5dc09ca52aff29ae07c8ba6 (diff) | |
download | linux-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.c | 2 |
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; |