Message ID | 20180704064058.1344-1-yehs2007@zoho.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 3, 2018 at 11:40 PM, Huaisheng Ye <yehs2007@zoho.com> wrote: > From: Huaisheng Ye <yehs1@lenovo.com> > > 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@lenovo.com> > --- > 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
> From: Dan Williams [mailto:dan.j.williams@intel.com] > Sent: Wednesday, July 04, 2018 10:40 PM > On Tue, Jul 3, 2018 at 11:40 PM, Huaisheng Ye <yehs2007@zoho.com> wrote: > > From: Huaisheng Ye <yehs1@lenovo.com> > > > > 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@lenovo.com> > > --- > > 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 Yes, you are right. Cheers, Huaisheng Ye
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