nvdimm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless
@ 2018-07-04 16:38 Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 1/4] nvdimm/pmem: check the validity of the pointer pfn Huaisheng Ye
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Huaisheng Ye @ 2018-07-04 16:38 UTC (permalink / raw)
  To: linux-nvdimm, dan.j.williams
  Cc: axboe, linux-s390, chengnt, jack, heiko.carstens, linux-kernel,
	willy, colyli, bart.vanassche, viro, gregkh, schwidefsky,
	linux-fsdevel

From: Huaisheng Ye <yehs1@lenovo.com>

Changes since v1 [1]:
* Collect Jan's reviewed-by.
* According to Dan's suggestion, update the unit test infrastructure
  tools/testing/nvdimm/pmem-dax.c for checking the validity of gfn.

[1]: https://lkml.org/lkml/2018/7/4/81

---

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 all direct_access need to check the validity of pointer pfn for NULL
assignment. If pfn equals to NULL, it doesn't need to calculate its value.

---

Huaisheng Ye (4):
  nvdimm/pmem: check the validity of the pointer pfn
  nvdimm/pmem-dax: check the validity of the pointer pfn
  s390/block/dcssblk: check the validity of the pointer pfn
  fs/dax: Assign NULL to gfn of dax_direct_access if useless

 drivers/nvdimm/pmem.c           | 3 ++-
 drivers/s390/block/dcssblk.c    | 3 ++-
 fs/dax.c                        | 9 +++------
 tools/testing/nvdimm/pmem-dax.c | 6 ++++--
 4 files changed, 11 insertions(+), 10 deletions(-)

-- 
1.8.3.1


_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/4] nvdimm/pmem: check the validity of the pointer pfn
  2018-07-04 16:38 [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless Huaisheng Ye
@ 2018-07-04 16:38 ` Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 2/4] nvdimm/pmem-dax: " Huaisheng Ye
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Huaisheng Ye @ 2018-07-04 16:38 UTC (permalink / raw)
  To: linux-nvdimm, dan.j.williams
  Cc: axboe, linux-s390, chengnt, jack, heiko.carstens, linux-kernel,
	willy, colyli, bart.vanassche, viro, gregkh, schwidefsky,
	linux-fsdevel

From: Huaisheng Ye <yehs1@lenovo.com>

direct_access needs to check the validity of pointer pfn for NULL
assignment. If pfn equals to NULL, it doesn't need to calculate the value.

Signed-off-by: Huaisheng Ye <yehs1@lenovo.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 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
-- 
1.8.3.1


_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/4] nvdimm/pmem-dax: check the validity of the pointer pfn
  2018-07-04 16:38 [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 1/4] nvdimm/pmem: check the validity of the pointer pfn Huaisheng Ye
@ 2018-07-04 16:38 ` Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 3/4] s390/block/dcssblk: " Huaisheng Ye
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Huaisheng Ye @ 2018-07-04 16:38 UTC (permalink / raw)
  To: linux-nvdimm, dan.j.williams
  Cc: axboe, linux-s390, chengnt, jack, heiko.carstens, linux-kernel,
	willy, colyli, bart.vanassche, viro, gregkh, schwidefsky,
	linux-fsdevel

From: Huaisheng Ye <yehs1@lenovo.com>

direct_access needs to check the validity of pointer pfn for NULL
assignment. If pfn equals to NULL, it doesn't need to calculate the value.

Suggested-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Huaisheng Ye <yehs1@lenovo.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 tools/testing/nvdimm/pmem-dax.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/nvdimm/pmem-dax.c b/tools/testing/nvdimm/pmem-dax.c
index b53596a..d4cb528 100644
--- a/tools/testing/nvdimm/pmem-dax.c
+++ b/tools/testing/nvdimm/pmem-dax.c
@@ -33,7 +33,8 @@ long __pmem_direct_access(struct pmem_device *pmem, pgoff_t pgoff,
 
 		*kaddr = pmem->virt_addr + offset;
 		page = vmalloc_to_page(pmem->virt_addr + offset);
-		*pfn = page_to_pfn_t(page);
+		if (pfn)
+			*pfn = page_to_pfn_t(page);
 		pr_debug_ratelimited("%s: pmem: %p pgoff: %#lx pfn: %#lx\n",
 				__func__, pmem, pgoff, page_to_pfn(page));
 
@@ -41,7 +42,8 @@ long __pmem_direct_access(struct pmem_device *pmem, pgoff_t pgoff,
 	}
 
 	*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
-- 
1.8.3.1


_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/4] s390/block/dcssblk: check the validity of the pointer pfn
  2018-07-04 16:38 [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 1/4] nvdimm/pmem: check the validity of the pointer pfn Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 2/4] nvdimm/pmem-dax: " Huaisheng Ye
@ 2018-07-04 16:38 ` Huaisheng Ye
  2018-07-04 16:38 ` [PATCH v2 4/4] fs/dax: Assign NULL to gfn of dax_direct_access if useless Huaisheng Ye
  2018-07-04 16:48 ` [PATCH v2 0/4] Assigning " Dan Williams
  4 siblings, 0 replies; 8+ messages in thread
From: Huaisheng Ye @ 2018-07-04 16:38 UTC (permalink / raw)
  To: linux-nvdimm, dan.j.williams
  Cc: axboe, linux-s390, chengnt, jack, heiko.carstens, linux-kernel,
	willy, colyli, bart.vanassche, viro, gregkh, schwidefsky,
	linux-fsdevel

From: Huaisheng Ye <yehs1@lenovo.com>

direct_access needs to check the validity of pointer pfn for NULL
assignment. If pfn equals to NULL, it doesn't need to calculate the value.

Signed-off-by: Huaisheng Ye <yehs1@lenovo.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 drivers/s390/block/dcssblk.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 0a312e4..5cdfa02 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -916,7 +916,8 @@ static DEVICE_ATTR(save, S_IWUSR | S_IRUSR, dcssblk_save_show,
 
 	dev_sz = dev_info->end - dev_info->start + 1;
 	*kaddr = (void *) dev_info->start + offset;
-	*pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset),
+	if (pfn)
+		*pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset),
 			PFN_DEV|PFN_SPECIAL);
 
 	return (dev_sz - offset) / PAGE_SIZE;
-- 
1.8.3.1


_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 4/4] fs/dax: Assign NULL to gfn of dax_direct_access if useless
  2018-07-04 16:38 [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless Huaisheng Ye
                   ` (2 preceding siblings ...)
  2018-07-04 16:38 ` [PATCH v2 3/4] s390/block/dcssblk: " Huaisheng Ye
@ 2018-07-04 16:38 ` Huaisheng Ye
  2018-07-04 16:48 ` [PATCH v2 0/4] Assigning " Dan Williams
  4 siblings, 0 replies; 8+ messages in thread
From: Huaisheng Ye @ 2018-07-04 16:38 UTC (permalink / raw)
  To: linux-nvdimm, dan.j.williams
  Cc: axboe, linux-s390, chengnt, jack, heiko.carstens, linux-kernel,
	willy, colyli, bart.vanassche, viro, gregkh, schwidefsky,
	linux-fsdevel

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.

Signed-off-by: Huaisheng Ye <yehs1@lenovo.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 fs/dax.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/fs/dax.c b/fs/dax.c
index aaec72de..aa75dfd 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -550,7 +550,6 @@ static int copy_user_dax(struct block_device *bdev, struct dax_device *dax_dev,
 {
 	void *vto, *kaddr;
 	pgoff_t pgoff;
-	pfn_t pfn;
 	long rc;
 	int id;
 
@@ -559,7 +558,7 @@ static int copy_user_dax(struct block_device *bdev, struct dax_device *dax_dev,
 		return rc;
 
 	id = dax_read_lock();
-	rc = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size), &kaddr, &pfn);
+	rc = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size), &kaddr, NULL);
 	if (rc < 0) {
 		dax_read_unlock(id);
 		return rc;
@@ -961,7 +960,6 @@ int __dax_zero_page_range(struct block_device *bdev,
 		pgoff_t pgoff;
 		long rc, id;
 		void *kaddr;
-		pfn_t pfn;
 
 		rc = bdev_dax_pgoff(bdev, sector, PAGE_SIZE, &pgoff);
 		if (rc)
@@ -969,7 +967,7 @@ int __dax_zero_page_range(struct block_device *bdev,
 
 		id = dax_read_lock();
 		rc = dax_direct_access(dax_dev, pgoff, 1, &kaddr,
-				&pfn);
+				NULL);
 		if (rc < 0) {
 			dax_read_unlock(id);
 			return rc;
@@ -1024,7 +1022,6 @@ int __dax_zero_page_range(struct block_device *bdev,
 		ssize_t map_len;
 		pgoff_t pgoff;
 		void *kaddr;
-		pfn_t pfn;
 
 		if (fatal_signal_pending(current)) {
 			ret = -EINTR;
@@ -1036,7 +1033,7 @@ int __dax_zero_page_range(struct block_device *bdev,
 			break;
 
 		map_len = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size),
-				&kaddr, &pfn);
+				&kaddr, NULL);
 		if (map_len < 0) {
 			ret = map_len;
 			break;
-- 
1.8.3.1


_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless
  2018-07-04 16:38 [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless Huaisheng Ye
                   ` (3 preceding siblings ...)
  2018-07-04 16:38 ` [PATCH v2 4/4] fs/dax: Assign NULL to gfn of dax_direct_access if useless Huaisheng Ye
@ 2018-07-04 16:48 ` Dan Williams
  2018-07-04 16:55   ` Huaisheng Ye
  4 siblings, 1 reply; 8+ messages in thread
From: Dan Williams @ 2018-07-04 16:48 UTC (permalink / raw)
  To: Huaisheng Ye
  Cc: Jens Axboe, linux-s390, linux-nvdimm, NingTing Cheng, Jan Kara,
	Heiko Carstens, Linux Kernel Mailing List, Matthew Wilcox,
	colyli, Bart Van Assche, Al Viro, Greg KH, Martin Schwidefsky,
	linux-fsdevel

On Wed, Jul 4, 2018 at 9:38 AM, Huaisheng Ye <yehs2007@zoho.com> wrote:
> From: Huaisheng Ye <yehs1@lenovo.com>
>
> Changes since v1 [1]:
> * Collect Jan's reviewed-by.
> * According to Dan's suggestion, update the unit test infrastructure
>   tools/testing/nvdimm/pmem-dax.c for checking the validity of gfn.
>
> [1]: https://lkml.org/lkml/2018/7/4/81
>
> ---
>
> Some functions within fs/dax don't need to get gfn from direct_access.

Any reason you are calling it 'gfn'? I'm assuming that is a typo and
it should be 'pfn'.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless
  2018-07-04 16:48 ` [PATCH v2 0/4] Assigning " Dan Williams
@ 2018-07-04 16:55   ` Huaisheng Ye
  2018-07-04 17:16     ` Dan Williams
  0 siblings, 1 reply; 8+ messages in thread
From: Huaisheng Ye @ 2018-07-04 16:55 UTC (permalink / raw)
  To: "Dan Williams"
  Cc: "Jens Axboe", "linux-s390",
	"linux-nvdimm", "NingTing Cheng",
	"Jan Kara", "Heiko Carstens",
	"Linux Kernel Mailing List", "Matthew Wilcox",
	"colyli", "Bart Van Assche", "Al Viro",
	"Greg KH", "Martin Schwidefsky",
	"linux-fsdevel"





 ---- On Thu, 05 Jul 2018 00:48:40 +0800 Dan Williams <dan.j.williams@intel.com> wrote ---- 
 > On Wed, Jul 4, 2018 at 9:38 AM, Huaisheng Ye <yehs2007@zoho.com> wrote: 
 > > From: Huaisheng Ye <yehs1@lenovo.com> 
 > > 
 > > Changes since v1 [1]: 
 > > * Collect Jan's reviewed-by. 
 > > * According to Dan's suggestion, update the unit test infrastructure 
 > >   tools/testing/nvdimm/pmem-dax.c for checking the validity of gfn. 
 > > 
 > > [1]: https://lkml.org/lkml/2018/7/4/81 
 > > 
 > > --- 
 > > 
 > > Some functions within fs/dax don't need to get gfn from direct_access. 
 >  
 > Any reason you are calling it 'gfn'? I'm assuming that is a typo and 
 > it should be 'pfn'. 

Oh, sorry.
I made a mistake, it is a typo. I will correct it right now.

---
Cheers,
Huaisheng Ye

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless
  2018-07-04 16:55   ` Huaisheng Ye
@ 2018-07-04 17:16     ` Dan Williams
  0 siblings, 0 replies; 8+ messages in thread
From: Dan Williams @ 2018-07-04 17:16 UTC (permalink / raw)
  To: Huaisheng Ye
  Cc: Jens Axboe, linux-s390, linux-nvdimm, NingTing Cheng, Jan Kara,
	Heiko Carstens, Linux Kernel Mailing List, Matthew Wilcox,
	colyli, Bart Van Assche, Al Viro, Greg KH, Martin Schwidefsky,
	linux-fsdevel

On Wed, Jul 4, 2018 at 9:55 AM, Huaisheng Ye <yehs2007@zoho.com> wrote:
>
>
>
>
>  ---- On Thu, 05 Jul 2018 00:48:40 +0800 Dan Williams <dan.j.williams@intel.com> wrote ----
>  > On Wed, Jul 4, 2018 at 9:38 AM, Huaisheng Ye <yehs2007@zoho.com> wrote:
>  > > From: Huaisheng Ye <yehs1@lenovo.com>
>  > >
>  > > Changes since v1 [1]:
>  > > * Collect Jan's reviewed-by.
>  > > * According to Dan's suggestion, update the unit test infrastructure
>  > >   tools/testing/nvdimm/pmem-dax.c for checking the validity of gfn.
>  > >
>  > > [1]: https://lkml.org/lkml/2018/7/4/81
>  > >
>  > > ---
>  > >
>  > > Some functions within fs/dax don't need to get gfn from direct_access.
>  >
>  > Any reason you are calling it 'gfn'? I'm assuming that is a typo and
>  > it should be 'pfn'.
>
> Oh, sorry.
> I made a mistake, it is a typo. I will correct it right now.

Don't worry about sending a new version. I'll fix it up when I apply the series.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-07-04 17:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-04 16:38 [PATCH v2 0/4] Assigning NULL to gfn of dax_direct_access if useless Huaisheng Ye
2018-07-04 16:38 ` [PATCH v2 1/4] nvdimm/pmem: check the validity of the pointer pfn Huaisheng Ye
2018-07-04 16:38 ` [PATCH v2 2/4] nvdimm/pmem-dax: " Huaisheng Ye
2018-07-04 16:38 ` [PATCH v2 3/4] s390/block/dcssblk: " Huaisheng Ye
2018-07-04 16:38 ` [PATCH v2 4/4] fs/dax: Assign NULL to gfn of dax_direct_access if useless Huaisheng Ye
2018-07-04 16:48 ` [PATCH v2 0/4] Assigning " Dan Williams
2018-07-04 16:55   ` Huaisheng Ye
2018-07-04 17:16     ` Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).