From: Dan Carpenter Date: Thu, 29 Nov 2018 10:56:54 +0000 (+0300) Subject: blk-mq: Add a NULL check in blk_mq_free_map_and_requests() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=4e6db0f21c99c25980c8d183f95cdb6ad64cebd2;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Jens Axboe --- 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;