memremap: pass a struct dev_pagemap to ->kill and ->cleanup

Passing the actual typed structure leads to more understandable code
vs just passing the ref member.

Reported-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
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>
This commit is contained in:
Christoph Hellwig
2019-06-26 14:27:09 +02:00
committed by Jason Gunthorpe
parent 1e240e8d4a
commit d8668bb045
7 changed files with 33 additions and 32 deletions

View File

@@ -91,14 +91,15 @@ static void pci_p2pdma_percpu_release(struct percpu_ref *ref)
complete(&p2p_pgmap->ref_done);
}
static void pci_p2pdma_percpu_kill(struct percpu_ref *ref)
static void pci_p2pdma_percpu_kill(struct dev_pagemap *pgmap)
{
percpu_ref_kill(ref);
percpu_ref_kill(pgmap->ref);
}
static void pci_p2pdma_percpu_cleanup(struct percpu_ref *ref)
static void pci_p2pdma_percpu_cleanup(struct dev_pagemap *pgmap)
{
struct p2pdma_pagemap *p2p_pgmap = to_p2p_pgmap(ref);
struct p2pdma_pagemap *p2p_pgmap =
container_of(pgmap, struct p2pdma_pagemap, pgmap);
wait_for_completion(&p2p_pgmap->ref_done);
percpu_ref_exit(&p2p_pgmap->ref);