Commit 684bf9cd authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

ps3vram: convert to blk_alloc_disk/blk_cleanup_disk

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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20210521055116.1053587-23-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent f9dc931d
...@@ -67,7 +67,6 @@ struct ps3vram_cache { ...@@ -67,7 +67,6 @@ struct ps3vram_cache {
}; };
struct ps3vram_priv { struct ps3vram_priv {
struct request_queue *queue;
struct gendisk *gendisk; struct gendisk *gendisk;
u64 size; u64 size;
...@@ -613,7 +612,6 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev) ...@@ -613,7 +612,6 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
{ {
struct ps3vram_priv *priv; struct ps3vram_priv *priv;
int error, status; int error, status;
struct request_queue *queue;
struct gendisk *gendisk; struct gendisk *gendisk;
u64 ddr_size, ddr_lpar, ctrl_lpar, info_lpar, reports_lpar, u64 ddr_size, ddr_lpar, ctrl_lpar, info_lpar, reports_lpar,
reports_size, xdr_lpar; reports_size, xdr_lpar;
...@@ -736,33 +734,23 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev) ...@@ -736,33 +734,23 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
ps3vram_proc_init(dev); ps3vram_proc_init(dev);
queue = blk_alloc_queue(NUMA_NO_NODE); gendisk = blk_alloc_disk(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);
if (!gendisk) { if (!gendisk) {
dev_err(&dev->core, "alloc_disk failed\n"); dev_err(&dev->core, "blk_alloc_disk failed\n");
error = -ENOMEM; error = -ENOMEM;
goto fail_cleanup_queue; goto out_cache_cleanup;
} }
priv->gendisk = gendisk; priv->gendisk = gendisk;
gendisk->major = ps3vram_major; gendisk->major = ps3vram_major;
gendisk->first_minor = 0; gendisk->minors = 1;
gendisk->fops = &ps3vram_fops; gendisk->fops = &ps3vram_fops;
gendisk->queue = queue;
gendisk->private_data = dev; gendisk->private_data = dev;
strlcpy(gendisk->disk_name, DEVICE_NAME, sizeof(gendisk->disk_name)); strlcpy(gendisk->disk_name, DEVICE_NAME, sizeof(gendisk->disk_name));
set_capacity(gendisk, priv->size >> 9); 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", dev_info(&dev->core, "%s: Using %llu MiB of GPU memory\n",
gendisk->disk_name, get_capacity(gendisk) >> 11); gendisk->disk_name, get_capacity(gendisk) >> 11);
...@@ -770,8 +758,6 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev) ...@@ -770,8 +758,6 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
device_add_disk(&dev->core, gendisk, NULL); device_add_disk(&dev->core, gendisk, NULL);
return 0; return 0;
fail_cleanup_queue:
blk_cleanup_queue(queue);
out_cache_cleanup: out_cache_cleanup:
remove_proc_entry(DEVICE_NAME, NULL); remove_proc_entry(DEVICE_NAME, NULL);
ps3vram_cache_cleanup(dev); ps3vram_cache_cleanup(dev);
...@@ -802,8 +788,7 @@ static void ps3vram_remove(struct ps3_system_bus_device *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); struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev);
del_gendisk(priv->gendisk); del_gendisk(priv->gendisk);
put_disk(priv->gendisk); blk_cleanup_disk(priv->gendisk);
blk_cleanup_queue(priv->queue);
remove_proc_entry(DEVICE_NAME, NULL); remove_proc_entry(DEVICE_NAME, NULL);
ps3vram_cache_cleanup(dev); ps3vram_cache_cleanup(dev);
iounmap(priv->reports); iounmap(priv->reports);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment