};
 
 struct ps3vram_priv {
-       struct request_queue *queue;
        struct gendisk *gendisk;
 
        u64 size;
 {
        struct ps3vram_priv *priv;
        int error, status;
-       struct request_queue *queue;
        struct gendisk *gendisk;
        u64 ddr_size, ddr_lpar, ctrl_lpar, info_lpar, reports_lpar,
            reports_size, xdr_lpar;
 
        ps3vram_proc_init(dev);
 
-       queue = blk_alloc_queue(NUMA_NO_NODE);
-       if (!queue) {
-               dev_err(&dev->core, "blk_alloc_queue failed\n");
-               error = -ENOMEM;
-               goto out_cache_cleanup;
-       }
-
-       priv->queue = queue;
-       blk_queue_max_segments(queue, BLK_MAX_SEGMENTS);
-       blk_queue_max_segment_size(queue, BLK_MAX_SEGMENT_SIZE);
-       blk_queue_max_hw_sectors(queue, BLK_SAFE_MAX_SECTORS);
-
-       gendisk = alloc_disk(1);
+       gendisk = blk_alloc_disk(NUMA_NO_NODE);
        if (!gendisk) {
-               dev_err(&dev->core, "alloc_disk failed\n");
+               dev_err(&dev->core, "blk_alloc_disk failed\n");
                error = -ENOMEM;
-               goto fail_cleanup_queue;
+               goto out_cache_cleanup;
        }
 
        priv->gendisk = gendisk;
        gendisk->major = ps3vram_major;
-       gendisk->first_minor = 0;
+       gendisk->minors = 1;
        gendisk->fops = &ps3vram_fops;
-       gendisk->queue = queue;
        gendisk->private_data = dev;
        strlcpy(gendisk->disk_name, DEVICE_NAME, sizeof(gendisk->disk_name));
        set_capacity(gendisk, priv->size >> 9);
+       blk_queue_max_segments(gendisk->queue, BLK_MAX_SEGMENTS);
+       blk_queue_max_segment_size(gendisk->queue, BLK_MAX_SEGMENT_SIZE);
+       blk_queue_max_hw_sectors(gendisk->queue, BLK_SAFE_MAX_SECTORS);
 
        dev_info(&dev->core, "%s: Using %llu MiB of GPU memory\n",
                 gendisk->disk_name, get_capacity(gendisk) >> 11);
        device_add_disk(&dev->core, gendisk, NULL);
        return 0;
 
-fail_cleanup_queue:
-       blk_cleanup_queue(queue);
 out_cache_cleanup:
        remove_proc_entry(DEVICE_NAME, NULL);
        ps3vram_cache_cleanup(dev);
        struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev);
 
        del_gendisk(priv->gendisk);
-       put_disk(priv->gendisk);
-       blk_cleanup_queue(priv->queue);
+       blk_cleanup_disk(priv->gendisk);
        remove_proc_entry(DEVICE_NAME, NULL);
        ps3vram_cache_cleanup(dev);
        iounmap(priv->reports);