On Sun, Oct 11, 2026 at 09:18:57PM +0800, [email protected] wrote:
> From: Jianyun Gao <[email protected]>
> 
> When the region driver is not loaded, mapping_store() returns rc
> which is 0 at that point, instead of an error code. Set it to
> -ENXIO to match the equivalent check in size_store().


Hi Jianyun,

The change looks correct, but there is another path in mapping_store() with
the same problem. When alloc_is_aligned() fails, rc is still zero, so the
sysfs write reports success without allocating the requested range.

Muchun Song already posted a patch addressing both cases.
https://lore.kernel.org/nvdimm/[email protected]/

Please take a look and add your reviewed-by tag to Muchun's patchset
or comment if it doesn't meet your needs.

-- Alison

> 
> Fixes: 9567da0b408a ("device-dax: Introduce bus + driver model")
> Signed-off-by: Jianyun Gao <[email protected]>
> ---
>  drivers/dax/bus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
> index b809e1a264af..262f97b5e7aa 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -1192,7 +1192,7 @@ static ssize_t mapping_store(struct device *dev, struct 
> device_attribute *attr,
>               return rc;
>       if (!dax_region->dev->driver) {
>               up_write(&dax_region_rwsem);
> -             return rc;
> +             return -ENXIO;
>       }
>       rc = down_write_killable(&dax_dev_rwsem);
>       if (rc) {
> -- 
> 2.34.1
> 

Reply via email to