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: Christoph Hellwig <hch@lst.de> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Link: https://lore.kernel.org/r/20210521055116.1053587-23-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
f9dc931de8
commit
684bf9cd8d
+8
-23
@@ -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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
|
|
||||||
ps3vram_proc_init(dev);
|
ps3vram_proc_init(dev);
|
||||||
|
|
||||||
queue = blk_alloc_queue(NUMA_NO_NODE);
|
gendisk = blk_alloc_disk(NUMA_NO_NODE);
|
||||||
if (!queue) {
|
if (!gendisk) {
|
||||||
dev_err(&dev->core, "blk_alloc_queue failed\n");
|
dev_err(&dev->core, "blk_alloc_disk failed\n");
|
||||||
error = -ENOMEM;
|
error = -ENOMEM;
|
||||||
goto out_cache_cleanup;
|
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) {
|
|
||||||
dev_err(&dev->core, "alloc_disk failed\n");
|
|
||||||
error = -ENOMEM;
|
|
||||||
goto fail_cleanup_queue;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user