diff options
| author | Christoph Hellwig <hch@lst.de> | 2019-06-26 08:27:12 -0400 |
|---|---|---|
| committer | Jason Gunthorpe <jgg@mellanox.com> | 2019-07-02 13:32:44 -0400 |
| commit | 80a72d0af05ae97a8b106c172e431072ba587492 (patch) | |
| tree | 9f7ace9e0b44dc866a6ac1fda624813a608b11ed | |
| parent | 897e6365cda6ba6356e83a3aaa68dec82ef4c548 (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.c | 2 | ||||
| -rw-r--r-- | include/linux/memremap.h | 3 | ||||
| -rw-r--r-- | kernel/memremap.c | 2 | ||||
| -rw-r--r-- | mm/hmm.c | 9 |
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 | ||
| 337 | static void pmem_pagemap_page_free(struct page *page, void *data) | 337 | static 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 | } |
| @@ -1368,15 +1368,17 @@ static void hmm_devmem_ref_kill(struct dev_pagemap *pgmap) | |||
| 1368 | 1368 | ||
| 1369 | static vm_fault_t hmm_devmem_migrate_to_ram(struct vm_fault *vmf) | 1369 | static 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 | ||
| 1377 | static void hmm_devmem_free(struct page *page, void *data) | 1378 | static 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)) |
