public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dax/fsdev: fix uninitialized kaddr in fsdev_dax_zero_page_range()
       [not found] <20260412154944.461748-1-john@jagalactic.com>
@ 2026-04-12 15:50 ` John Groves
  2026-04-13 15:19   ` Jonathan Cameron
  2026-04-13 16:12   ` Dave Jiang
  0 siblings, 2 replies; 3+ messages in thread
From: John Groves @ 2026-04-12 15:50 UTC (permalink / raw)
  To: Dan Williams, Vishal Verma, Dave Jiang, Ira Weiny,
	nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
  Cc: linux-kernel@vger.kernel.org, Dan Carpenter, John Groves,
	John Groves

From: John Groves <John@Groves.net>

__fsdev_dax_direct_access() returns -EFAULT without setting *kaddr when
dax_pgoff_to_phys() returns -1 (pgoff out of range). The return value
was ignored, leaving kaddr uninitialized before being passed to
fsdev_write_dax().

Check the return value and propagate the error.

Thanks to Dan Carpenter and the smatch project for reporting this.

Signed-off-by: John Groves <john@groves.net>
---
 drivers/dax/fsdev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/dax/fsdev.c b/drivers/dax/fsdev.c
index 4499d9621f33..188b2526bee4 100644
--- a/drivers/dax/fsdev.c
+++ b/drivers/dax/fsdev.c
@@ -80,9 +80,12 @@ static int fsdev_dax_zero_page_range(struct dax_device *dax_dev,
 			pgoff_t pgoff, size_t nr_pages)
 {
 	void *kaddr;
+	long rc;
 
 	WARN_ONCE(nr_pages > 1, "%s: nr_pages > 1\n", __func__);
-	__fsdev_dax_direct_access(dax_dev, pgoff, 1, DAX_ACCESS, &kaddr, NULL);
+	rc = __fsdev_dax_direct_access(dax_dev, pgoff, 1, DAX_ACCESS, &kaddr, NULL);
+	if (rc < 0)
+		return rc;
 	fsdev_write_dax(kaddr, ZERO_PAGE(0), 0, PAGE_SIZE);
 	return 0;
 }

base-commit: 2ae624d5a555d47a735fb3f4d850402859a4db77
-- 
2.53.0



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

* Re: [PATCH] dax/fsdev: fix uninitialized kaddr in fsdev_dax_zero_page_range()
  2026-04-12 15:50 ` [PATCH] dax/fsdev: fix uninitialized kaddr in fsdev_dax_zero_page_range() John Groves
@ 2026-04-13 15:19   ` Jonathan Cameron
  2026-04-13 16:12   ` Dave Jiang
  1 sibling, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2026-04-13 15:19 UTC (permalink / raw)
  To: John Groves
  Cc: Dan Williams, Vishal Verma, Dave Jiang, Ira Weiny,
	nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org,
	linux-kernel@vger.kernel.org, Dan Carpenter, John Groves

On Sun, 12 Apr 2026 15:50:06 +0000
John Groves <john@jagalactic.com> wrote:

> From: John Groves <John@Groves.net>
> 
> __fsdev_dax_direct_access() returns -EFAULT without setting *kaddr when
> dax_pgoff_to_phys() returns -1 (pgoff out of range). The return value
> was ignored, leaving kaddr uninitialized before being passed to
> fsdev_write_dax().
> 
> Check the return value and propagate the error.
> 
> Thanks to Dan Carpenter and the smatch project for reporting this.
> 
> Signed-off-by: John Groves <john@groves.net>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>

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

* Re: [PATCH] dax/fsdev: fix uninitialized kaddr in fsdev_dax_zero_page_range()
  2026-04-12 15:50 ` [PATCH] dax/fsdev: fix uninitialized kaddr in fsdev_dax_zero_page_range() John Groves
  2026-04-13 15:19   ` Jonathan Cameron
@ 2026-04-13 16:12   ` Dave Jiang
  1 sibling, 0 replies; 3+ messages in thread
From: Dave Jiang @ 2026-04-13 16:12 UTC (permalink / raw)
  To: John Groves, Dan Williams, Vishal Verma, Ira Weiny,
	nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
  Cc: linux-kernel@vger.kernel.org, Dan Carpenter, John Groves



On 4/12/26 8:50 AM, John Groves wrote:
> From: John Groves <John@Groves.net>
> 
> __fsdev_dax_direct_access() returns -EFAULT without setting *kaddr when
> dax_pgoff_to_phys() returns -1 (pgoff out of range). The return value
> was ignored, leaving kaddr uninitialized before being passed to
> fsdev_write_dax().
> 
> Check the return value and propagate the error.
> 
> Thanks to Dan Carpenter and the smatch project for reporting this.
> 
> Signed-off-by: John Groves <john@groves.net>

Reviewed-by: Dave Jiang <dave.jiang@intel.com>


> ---
>  drivers/dax/fsdev.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/dax/fsdev.c b/drivers/dax/fsdev.c
> index 4499d9621f33..188b2526bee4 100644
> --- a/drivers/dax/fsdev.c
> +++ b/drivers/dax/fsdev.c
> @@ -80,9 +80,12 @@ static int fsdev_dax_zero_page_range(struct dax_device *dax_dev,
>  			pgoff_t pgoff, size_t nr_pages)
>  {
>  	void *kaddr;
> +	long rc;
>  
>  	WARN_ONCE(nr_pages > 1, "%s: nr_pages > 1\n", __func__);
> -	__fsdev_dax_direct_access(dax_dev, pgoff, 1, DAX_ACCESS, &kaddr, NULL);
> +	rc = __fsdev_dax_direct_access(dax_dev, pgoff, 1, DAX_ACCESS, &kaddr, NULL);
> +	if (rc < 0)
> +		return rc;
>  	fsdev_write_dax(kaddr, ZERO_PAGE(0), 0, PAGE_SIZE);
>  	return 0;
>  }
> 
> base-commit: 2ae624d5a555d47a735fb3f4d850402859a4db77


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

end of thread, other threads:[~2026-04-13 16:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260412154944.461748-1-john@jagalactic.com>
2026-04-12 15:50 ` [PATCH] dax/fsdev: fix uninitialized kaddr in fsdev_dax_zero_page_range() John Groves
2026-04-13 15:19   ` Jonathan Cameron
2026-04-13 16:12   ` Dave Jiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox