rv = -ENOMEM;
                nullb->tag_set->timeout = 5 * HZ;
-               nullb->q = blk_mq_init_queue_data(nullb->tag_set, nullb);
-               if (IS_ERR(nullb->q))
+               nullb->disk = blk_mq_alloc_disk(nullb->tag_set, nullb);
+               if (IS_ERR(nullb->disk)) {
+                       rv = PTR_ERR(nullb->disk);
                        goto out_cleanup_tags;
-               nullb->disk = alloc_disk_node(1, nullb->dev->home_node);
-               if (!nullb->disk)
-                       goto out_cleanup_tags;
-               nullb->disk->queue = nullb->q;
+               }
+               nullb->q = nullb->disk->queue;
        } else if (dev->queue_mode == NULL_Q_BIO) {
                rv = -ENOMEM;
                nullb->disk = blk_alloc_disk(nullb->dev->home_node);