Convert the ps3vram driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 drivers/block/ps3vram.c | 31 ++++++++-----------------------
 1 file changed, 8 insertions(+), 23 deletions(-)

diff --git a/drivers/block/ps3vram.c b/drivers/block/ps3vram.c
index 1d738999fb69..7fbf469651c4 100644
--- a/drivers/block/ps3vram.c
+++ b/drivers/block/ps3vram.c
@@ -67,7 +67,6 @@ struct ps3vram_cache {
 };
 
 struct ps3vram_priv {
-       struct request_queue *queue;
        struct gendisk *gendisk;
 
        u64 size;
@@ -613,7 +612,6 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
 {
        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;
@@ -736,33 +734,23 @@ static int ps3vram_probe(struct ps3_system_bus_device 
*dev)
 
        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);
@@ -770,8 +758,6 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
        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);
@@ -802,8 +788,7 @@ static void ps3vram_remove(struct ps3_system_bus_device 
*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);
-- 
2.30.2

Reply via email to