aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2019-06-26 08:27:12 -0400
committerJason Gunthorpe <jgg@mellanox.com>2019-07-02 13:32:44 -0400
commit80a72d0af05ae97a8b106c172e431072ba587492 (patch)
tree9f7ace9e0b44dc866a6ac1fda624813a608b11ed
parent897e6365cda6ba6356e83a3aaa68dec82ef4c548 (diff)
memremap: remove the data field in struct dev_pagemap
struct dev_pagemap is always embedded into a containing structure, so there is no need to an additional private data field. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Tested-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
-rw-r--r--drivers/nvdimm/pmem.c2
-rw-r--r--include/linux/memremap.h3
-rw-r--r--kernel/memremap.c2
-rw-r--r--mm/hmm.c9
4 files changed, 8 insertions, 8 deletions
diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c
index 48767171a4df..093408ce40ad 100644
--- a/drivers/nvdimm/pmem.c
+++ b/drivers/nvdimm/pmem.c
@@ -334,7 +334,7 @@ static void pmem_release_disk(void *__pmem)
334 put_disk(pmem->disk); 334 put_disk(pmem->disk);
335} 335}
336 336
337static void pmem_pagemap_page_free(struct page *page, void *data) 337static void pmem_pagemap_page_free(struct page *page)
338{ 338{
339 wake_up_var(&page->_refcount); 339 wake_up_var(&page->_refcount);
340} 340}
diff --git a/include/linux/memremap.h b/include/linux/memremap.h
index ac985bd03a7f..336eca601dad 100644
--- a/include/linux/memremap.h
+++ b/include/linux/memremap.h
@@ -69,7 +69,7 @@ struct dev_pagemap_ops {
69 * reach 0 refcount unless there is a refcount bug. This allows the 69 * reach 0 refcount unless there is a refcount bug. This allows the
70 * device driver to implement its own memory management.) 70 * device driver to implement its own memory management.)
71 */ 71 */
72 void (*page_free)(struct page *page, void *data); 72 void (*page_free)(struct page *page);
73 73
74 /* 74 /*
75 * Transition the refcount in struct dev_pagemap to the dead state. 75 * Transition the refcount in struct dev_pagemap to the dead state.
@@ -104,7 +104,6 @@ struct dev_pagemap {
104 struct resource res; 104 struct resource res;
105 struct percpu_ref *ref; 105 struct percpu_ref *ref;
106 struct device *dev; 106 struct device *dev;
107 void *data;
108 enum memory_type type; 107 enum memory_type type;
109 u64 pci_p2pdma_bus_offset; 108 u64 pci_p2pdma_bus_offset;
110 const struct dev_pagemap_ops *ops; 109 const struct dev_pagemap_ops *ops;
diff --git a/kernel/memremap.c b/kernel/memremap.c
index c06a5487dda7..6c3dbb692037 100644
--- a/kernel/memremap.c
+++ b/kernel/memremap.c
@@ -376,7 +376,7 @@ void __put_devmap_managed_page(struct page *page)
376 376
377 mem_cgroup_uncharge(page); 377 mem_cgroup_uncharge(page);
378 378
379 page->pgmap->ops->page_free(page, page->pgmap->data); 379 page->pgmap->ops->page_free(page);
380 } else if (!count) 380 } else if (!count)
381 __put_page(page); 381 __put_page(page);
382} 382}
diff --git a/mm/hmm.c b/mm/hmm.c
index 96633ee066d8..36e25cdbdac1 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -1368,15 +1368,17 @@ static void hmm_devmem_ref_kill(struct dev_pagemap *pgmap)
1368 1368
1369static vm_fault_t hmm_devmem_migrate_to_ram(struct vm_fault *vmf) 1369static vm_fault_t hmm_devmem_migrate_to_ram(struct vm_fault *vmf)
1370{ 1370{
1371 struct hmm_devmem *devmem = vmf->page->pgmap->data; 1371 struct hmm_devmem *devmem =
1372 container_of(vmf->page->pgmap, struct hmm_devmem, pagemap);
1372 1373
1373 return devmem->ops->fault(devmem, vmf->vma, vmf->address, vmf->page, 1374 return devmem->ops->fault(devmem, vmf->vma, vmf->address, vmf->page,
1374 vmf->flags, vmf->pmd); 1375 vmf->flags, vmf->pmd);
1375} 1376}
1376 1377
1377static void hmm_devmem_free(struct page *page, void *data) 1378static void hmm_devmem_free(struct page *page)
1378{ 1379{
1379 struct hmm_devmem *devmem = data; 1380 struct hmm_devmem *devmem =
1381 container_of(page->pgmap, struct hmm_devmem, pagemap);
1380 1382
1381 devmem->ops->free(devmem, page); 1383 devmem->ops->free(devmem, page);
1382} 1384}
@@ -1442,7 +1444,6 @@ struct hmm_devmem *hmm_devmem_add(const struct hmm_devmem_ops *ops,
1442 devmem->pagemap.ops = &hmm_pagemap_ops; 1444 devmem->pagemap.ops = &hmm_pagemap_ops;
1443 devmem->pagemap.altmap_valid = false; 1445 devmem->pagemap.altmap_valid = false;
1444 devmem->pagemap.ref = &devmem->ref; 1446 devmem->pagemap.ref = &devmem->ref;
1445 devmem->pagemap.data = devmem;
1446 1447
1447 result = devm_memremap_pages(devmem->device, &devmem->pagemap); 1448 result = devm_memremap_pages(devmem->device, &devmem->pagemap);
1448 if (IS_ERR(result)) 1449 if (IS_ERR(result))