Skip to content

Commit 5a92289

Browse files
committed
libnvdimm, pmem: kill ->pmem_queue and ->pmem_disk
The devm conversion obviates the need to continue to remember the queue and disk locally in the driver. Reviewed-by: Johannes Thumshirn <[email protected]> Signed-off-by: Dan Williams <[email protected]>
1 parent ac515c0 commit 5a92289

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

drivers/nvdimm/pmem.c

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@
3333
#include "nd.h"
3434

3535
struct pmem_device {
36-
struct request_queue *pmem_queue;
37-
struct gendisk *pmem_disk;
38-
3936
/* One contiguous memory region per device */
4037
phys_addr_t phys_addr;
4138
/* when non-zero this device is hosting a 'pfn' instance */
@@ -52,7 +49,7 @@ struct pmem_device {
5249
static void pmem_clear_poison(struct pmem_device *pmem, phys_addr_t offset,
5350
unsigned int len)
5451
{
55-
struct device *dev = disk_to_dev(pmem->pmem_disk);
52+
struct device *dev = pmem->bb.dev;
5653
sector_t sector;
5754
long cleared;
5855

@@ -241,7 +238,6 @@ static int pmem_attach_disk(struct device *dev,
241238
q = blk_alloc_queue_node(GFP_KERNEL, dev_to_node(dev));
242239
if (!q)
243240
return -ENOMEM;
244-
pmem->pmem_queue = q;
245241

246242
pmem->pfn_flags = PFN_DEV;
247243
if (is_nd_pfn(dev)) {
@@ -274,12 +270,12 @@ static int pmem_attach_disk(struct device *dev,
274270
return PTR_ERR(addr);
275271
pmem->virt_addr = (void __pmem *) addr;
276272

277-
blk_queue_make_request(pmem->pmem_queue, pmem_make_request);
278-
blk_queue_physical_block_size(pmem->pmem_queue, PAGE_SIZE);
279-
blk_queue_max_hw_sectors(pmem->pmem_queue, UINT_MAX);
280-
blk_queue_bounce_limit(pmem->pmem_queue, BLK_BOUNCE_ANY);
281-
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, pmem->pmem_queue);
282-
pmem->pmem_queue->queuedata = pmem;
273+
blk_queue_make_request(q, pmem_make_request);
274+
blk_queue_physical_block_size(q, PAGE_SIZE);
275+
blk_queue_max_hw_sectors(q, UINT_MAX);
276+
blk_queue_bounce_limit(q, BLK_BOUNCE_ANY);
277+
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q);
278+
q->queuedata = pmem;
283279

284280
disk = alloc_disk_node(0, nid);
285281
if (!disk)
@@ -290,13 +286,12 @@ static int pmem_attach_disk(struct device *dev,
290286
}
291287

292288
disk->fops = &pmem_fops;
293-
disk->queue = pmem->pmem_queue;
289+
disk->queue = q;
294290
disk->flags = GENHD_FL_EXT_DEVT;
295291
nvdimm_namespace_disk_name(ndns, disk->disk_name);
296292
disk->driverfs_dev = dev;
297293
set_capacity(disk, (pmem->size - pmem->pfn_pad - pmem->data_offset)
298294
/ 512);
299-
pmem->pmem_disk = disk;
300295
if (devm_init_badblocks(dev, &pmem->bb))
301296
return -ENOMEM;
302297
nvdimm_badblocks_populate(to_nd_region(dev->parent), &pmem->bb, res);

0 commit comments

Comments
 (0)