• Ming Lei's avatar
    blk-mq: fix CPU hotplug handling · 2a34c087
    Ming Lei authored
    hctx->tags has to be set as NULL in case that it is to be unmapped
    no matter if set->tags[hctx->queue_num] is NULL or not in blk_mq_map_swqueue()
    because shared tags can be freed already from another request queue.
    
    The same situation has to be considered during handling CPU online too.
    Unmapped hw queue can be remapped after CPU topo is changed, so we need
    to allocate tags for the hw queue in blk_mq_map_swqueue(). Then tags
    allocation for hw queue can be removed in hctx cpu online notifier, and it
    is reasonable to do that after mapping is updated.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: default avatarDongsu Park <dongsu.park@profitbricks.com>
    Tested-by: default avatarDongsu Park <dongsu.park@profitbricks.com>
    Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    2a34c087
blk-mq.c 52 KB