History

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.

Dan Carpenter committed 7 years ago

Commit 4e6db0f1 parent 49379e61 file · +1 −1Browse files

Unified · Split

block/blk-mq.c+1−1
@@ -2341,7 +2341,7 @@ static bool __blk_mq_alloc_rq_map(struct blk_mq_tag_set *set, int hctx_idx) · 2340 unmodified lines
23412341 static void blk_mq_free_map_and_requests(struct blk_mq_tag_set *set,
23422342 unsigned int hctx_idx)
23432343 {
2344− if (set->tags[hctx_idx]) {
2344+ if (set->tags && set->tags[hctx_idx]) {
23452345 blk_mq_free_rqs(set, set->tags[hctx_idx], hctx_idx);
23462346 blk_mq_free_rq_map(set->tags[hctx_idx]);
23472347 set->tags[hctx_idx] = NULL;