Skip to content

Commit

Permalink
memremap: remove the data field in struct dev_pagemap
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Jason Gunthorpe <[email protected]>
Reviewed-by: Dan Williams <[email protected]>
Tested-by: Dan Williams <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
  • Loading branch information
Christoph Hellwig authored and jgunthorpe committed Jul 2, 2019
1 parent 897e636 commit 80a72d0
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion drivers/nvdimm/pmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ static void pmem_release_disk(void *__pmem)
put_disk(pmem->disk);
}

static void pmem_pagemap_page_free(struct page *page, void *data)
static void pmem_pagemap_page_free(struct page *page)
{
wake_up_var(&page->_refcount);
}
Expand Down
3 changes: 1 addition & 2 deletions include/linux/memremap.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ struct dev_pagemap_ops {
* reach 0 refcount unless there is a refcount bug. This allows the
* device driver to implement its own memory management.)
*/
void (*page_free)(struct page *page, void *data);
void (*page_free)(struct page *page);

/*
* Transition the refcount in struct dev_pagemap to the dead state.
Expand Down Expand Up @@ -104,7 +104,6 @@ struct dev_pagemap {
struct resource res;
struct percpu_ref *ref;
struct device *dev;
void *data;
enum memory_type type;
u64 pci_p2pdma_bus_offset;
const struct dev_pagemap_ops *ops;
Expand Down
2 changes: 1 addition & 1 deletion kernel/memremap.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ void __put_devmap_managed_page(struct page *page)

mem_cgroup_uncharge(page);

page->pgmap->ops->page_free(page, page->pgmap->data);
page->pgmap->ops->page_free(page);
} else if (!count)
__put_page(page);
}
Expand Down
9 changes: 5 additions & 4 deletions mm/hmm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1368,15 +1368,17 @@ static void hmm_devmem_ref_kill(struct dev_pagemap *pgmap)

static vm_fault_t hmm_devmem_migrate_to_ram(struct vm_fault *vmf)
{
struct hmm_devmem *devmem = vmf->page->pgmap->data;
struct hmm_devmem *devmem =
container_of(vmf->page->pgmap, struct hmm_devmem, pagemap);

return devmem->ops->fault(devmem, vmf->vma, vmf->address, vmf->page,
vmf->flags, vmf->pmd);
}

static void hmm_devmem_free(struct page *page, void *data)
static void hmm_devmem_free(struct page *page)
{
struct hmm_devmem *devmem = data;
struct hmm_devmem *devmem =
container_of(page->pgmap, struct hmm_devmem, pagemap);

devmem->ops->free(devmem, page);
}
Expand Down Expand Up @@ -1442,7 +1444,6 @@ struct hmm_devmem *hmm_devmem_add(const struct hmm_devmem_ops *ops,
devmem->pagemap.ops = &hmm_pagemap_ops;
devmem->pagemap.altmap_valid = false;
devmem->pagemap.ref = &devmem->ref;
devmem->pagemap.data = devmem;

result = devm_memremap_pages(devmem->device, &devmem->pagemap);
if (IS_ERR(result))
Expand Down

0 comments on commit 80a72d0

Please sign in to comment.