On Thu, Jun 4, 2015 at 9:14 PM, Ming Lei <tom.leiming@xxxxxxxxx> wrote:
Now blk_cleanup_queue() can be called before calling
del_gendisk()[1], inside which hctx->ctxs is touched
from blk_mq_unregister_hctx(), but the variable has
been freed by blk_cleanup_queue() at that time.
So this patch moves freeing of hctx->ctxs into queue's
release handler for fixing the oops reported by Stefan.
Also ctx's kobject is embedded into each ctx pointed by
hctx->ctxs[], which shouldn't have been released so early.
Hammm, the above line is wrong and should be removed, and
hctx->ctxs[] just stores the pointer of ctx.
Jens, if you need v1, please let me know.