Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

resource: fix false warning in __request_region()

A warning is raised when __request_region() detects a conflict with a
resource whose resource.desc is IORES_DESC_DEVICE_PRIVATE_MEMORY.

But this warning is only valid for iomem_resources.
The hmem device resource uses resource.desc as the numa node id, which can
cause spurious warnings.

This warning appeared on a machine with multiple cxl memory expanders.
One of the NUMA node id is 6, which is the same as the value of
IORES_DESC_DEVICE_PRIVATE_MEMORY.

In this environment it was just a spurious warning, but when I saw the
warning I suspected a real problem so it's better to fix it.

This change fixes this by restricting the warning to only iomem_resource.
This also adds a missing new line to the warning message.

Link: https://lkml.kernel.org/r/20250719112604.25500-1-akinobu.mita@gmail.com
Fixes: 7dab174e2e27 ("dax/hmem: Move hmem device registration to dax_hmem.ko")
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Akinobu Mita and committed by
Andrew Morton
91a229bb 1aef9df0

+3 -2
+3 -2
kernel/resource.c
··· 1279 1279 * become unavailable to other users. Conflicts are 1280 1280 * not expected. Warn to aid debugging if encountered. 1281 1281 */ 1282 - if (conflict->desc == IORES_DESC_DEVICE_PRIVATE_MEMORY) { 1283 - pr_warn("Unaddressable device %s %pR conflicts with %pR", 1282 + if (parent == &iomem_resource && 1283 + conflict->desc == IORES_DESC_DEVICE_PRIVATE_MEMORY) { 1284 + pr_warn("Unaddressable device %s %pR conflicts with %pR\n", 1284 1285 conflict->name, conflict, res); 1285 1286 } 1286 1287 if (conflict != parent) {