Hi Jens, I eliminated my implementation that set disk->queue = NULL before calling add_disk(). As we discussed it left way too much potential for NULL pointer crashes and I agree it was too fragile. This v3's approach is much simpler. It adjusts block core so that blk_register_queue() can be deferred (so add_disk()'s call is avoided if QUEUE_FLAG_DEFER_REG is set, and a driver must then call it once it has completed initializing its request_queue). PATCH 1 is just an unrelated fix. Christoph agreed with it in reply to my v2 submission (but he didn't provide a Reviewed-by). Anyway, I've revised the header to have it make more sense. If these changes look reasonable I'd prefer that you pick them all up for 4.16 (last DM patch included because it'll save me an awkward dm-4.16 rebase, etc). Thanks! Mike Mike Snitzer (3): block: only bdi_unregister() in del_gendisk() if !GENHD_FL_HIDDEN block: allow gendisk's request_queue registration to be deferred dm: fix awkward and incomplete request_queue initialization block/blk-sysfs.c | 4 ++++ block/genhd.c | 7 +++++-- drivers/md/dm-core.h | 2 -- drivers/md/dm-rq.c | 11 ----------- drivers/md/dm.c | 44 ++++++++++++++++++++++++++------------------ include/linux/blkdev.h | 1 + 6 files changed, 36 insertions(+), 33 deletions(-) -- 2.15.0