drivers/dax/bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The dax_region resource conflict in alloc_dax_region() indicates a
serious configuration problem — two subsystems (e.g. dax_hmem and
dax_cxl) are attempting to register overlapping address ranges. This is
not a transient or debug-level condition; it represents a genuine
resource conflict that an administrator needs to be aware of.
Promote the log level from dev_dbg() to dev_err() so that the conflict
is visible by default without requiring dynamic debug to be enabled.
Suggested-by: Dan Williams <dan.j.williams@intel.com>
Link: https://lore.kernel.org/linux-cxl/69c1a8d1c0fa9_7ee3100a1@dwillia2-mobl4.notmuch/
Fixes: 34f80bb969cc ("dax: Track all dax_region allocations under a global resource tree")
Signed-off-by: Tomasz Wolski <tomasz.wolski@fujitsu.com>
---
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 68437c05e21d..cd963eeeef7b 100644
--- a/drivers/dax/bus.c
+++ b/drivers/dax/bus.c
@@ -672,7 +672,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
rc = request_resource(&dax_regions, &dax_region->res);
if (rc) {
- dev_dbg(parent, "dax_region resource conflict for %pR\n",
+ dev_err(parent, "dax_region resource conflict for %pR\n",
&dax_region->res);
goto err_res;
}
--
2.47.3
On Thu, May 14, 2026 at 11:32:08AM +0200, Tomasz Wolski wrote:
> The dax_region resource conflict in alloc_dax_region() indicates a
> serious configuration problem — two subsystems (e.g. dax_hmem and
> dax_cxl) are attempting to register overlapping address ranges. This is
> not a transient or debug-level condition; it represents a genuine
> resource conflict that an administrator needs to be aware of.
>
> Promote the log level from dev_dbg() to dev_err() so that the conflict
> is visible by default without requiring dynamic debug to be enabled.
>
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Link: https://lore.kernel.org/linux-cxl/69c1a8d1c0fa9_7ee3100a1@dwillia2-mobl4.notmuch/
> Fixes: 34f80bb969cc ("dax: Track all dax_region allocations under a global resource tree")
> Signed-off-by: Tomasz Wolski <tomasz.wolski@fujitsu.com>
> ---
> 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 68437c05e21d..cd963eeeef7b 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -672,7 +672,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
>
> rc = request_resource(&dax_regions, &dax_region->res);
> if (rc) {
> - dev_dbg(parent, "dax_region resource conflict for %pR\n",
> + dev_err(parent, "dax_region resource conflict for %pR\n",
> &dax_region->res);
> goto err_res;
Hi Tomasz,
How about using request_resource_conflict() so that we can offer
more description in the error message?
-- Alison
> }
> --
> 2.47.3
>
Hello Alison, >> How about using request_resource_conflict() so that we can offer >> more description in the error message? Thanks for the hint - I will add that in v2. Best regards, Tomasz
On Thu, May 14, 2026 at 11:32:08AM +0800, Tomasz Wolski wrote:
> The dax_region resource conflict in alloc_dax_region() indicates a
> serious configuration problem — two subsystems (e.g. dax_hmem and
> dax_cxl) are attempting to register overlapping address ranges. This is
> not a transient or debug-level condition; it represents a genuine
> resource conflict that an administrator needs to be aware of.
>
> Promote the log level from dev_dbg() to dev_err() so that the conflict
> is visible by default without requiring dynamic debug to be enabled.
>
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Link: https://lore.kernel.org/linux-cxl/69c1a8d1c0fa9_7ee3100a1@dwillia2-mobl4.notmuch/
> Fixes: 34f80bb969cc ("dax: Track all dax_region allocations under a global resource tree")
> Signed-off-by: Tomasz Wolski <tomasz.wolski@fujitsu.com>
> ---
> 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 68437c05e21d..cd963eeeef7b 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -672,7 +672,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
>
> rc = request_resource(&dax_regions, &dax_region->res);
> if (rc) {
> - dev_dbg(parent, "dax_region resource conflict for %pR\n",
> + dev_err(parent, "dax_region resource conflict for %pR\n",
> &dax_region->res);
> goto err_res;
> }
> --
> 2.47.3
>
>
Hi Tomasz,
Did you run into any kind of error or even machine crashing from this ?
btw, though I am not against the change, I don't think this is a fix, maybe you can consider to remove the Fixes tag.
Best regards,
Richard Cheng.
Hello Richard, Thanks for your feedback >> Did you run into any kind of error or even machine crashing from this ? No, I haven't hit this error path in practice. On systems I've tested, the deferral logic in hmem_register_cxl_device() correctly drops ranges that CXL claims >> btw, though I am not against the change, I don't think this is a fix, maybe you can consider to remove the Fixes tag. Agreed, I'll drop the tag in v2. Best regards, Tomasz
© 2016 - 2026 Red Hat, Inc.