Re: [PATCH 1/3] nvdimm/pmem: check the validity of the pointer pfn

From: Dan Williams
Date: Wed Jul 04 2018 - 10:40:30 EST


On Tue, Jul 3, 2018 at 11:40 PM, Huaisheng Ye <yehs2007@xxxxxxxx> wrote:
> From: Huaisheng Ye <yehs1@xxxxxxxxxx>
>
> Some functions within fs/dax don't need to get gfn from direct_access.
> Assigning NULL to gfn of dax_direct_access is more intuitive and simple
> than offering a useless local variable.
>
> So direct_access needs to check validity of the pointer pfn For NULL
> assignment.
>
> Signed-off-by: Huaisheng Ye <yehs1@xxxxxxxxxx>
> ---
> drivers/nvdimm/pmem.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c
> index 9d71492..018f990 100644
> --- a/drivers/nvdimm/pmem.c
> +++ b/drivers/nvdimm/pmem.c
> @@ -233,7 +233,8 @@ __weak long __pmem_direct_access(struct pmem_device *pmem, pgoff_t pgoff,
> PFN_PHYS(nr_pages))))
> return -EIO;
> *kaddr = pmem->virt_addr + offset;
> - *pfn = phys_to_pfn_t(pmem->phys_addr + offset, pmem->pfn_flags);
> + if (pfn)
> + *pfn = phys_to_pfn_t(pmem->phys_addr + offset, pmem->pfn_flags);
>
> /*
> * If badblocks are present, limit known good range to the

Looks good. You also need to update the unit test infrastructure
version of this operation in:

tools/testing/nvdimm/pmem-dax.c