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:
parent
f9dc931de8
commit
684bf9cd8d
@ -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");
|
||||
gendisk = blk_alloc_disk(NUMA_NO_NODE);
|
||||
if (!gendisk) {
|
||||
dev_err(&dev->core, "blk_alloc_disk 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) {
|
||||
dev_err(&dev->core, "alloc_disk failed\n");
|
||||
error = -ENOMEM;
|
||||
goto fail_cleanup_queue;
|
||||
}
|
||||
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user