]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cxl/region: Use %pa printk format to emit resource_size_t
authorAlison Schofield <alison.schofield@intel.com>
Tue, 14 Oct 2025 07:31:04 +0000 (00:31 -0700)
committerDave Jiang <dave.jiang@intel.com>
Tue, 14 Oct 2025 20:02:23 +0000 (13:02 -0700)
commit257c4b03a2f7d8c15f79c79b09a561af9734f6c4
tree81da7a4cf48eccb60b37bfdeda2cd0866d7eac37
parentf4d027921c811ff7fc16e4d03c6bbbf4347cf37a
cxl/region: Use %pa printk format to emit resource_size_t

KASAN reports a stack-out-of-bounds access in validate_region_offset()
while running the cxl-poison.sh unit test because the printk format
specifier, %pr format, is not a match for the resource_size_t type of
the variables. %pr expects struct resource pointers and attempts to
dereference the structure fields, reading beyond the bounds of the
stack variables.

Since these messages emit  an 'A exceeds B' type of message, keep
the resource_size_t's and use the %pa specifier to be architecture
safe.

BUG: KASAN: stack-out-of-bounds in resource_string.isra.0+0xe9a/0x1690
[] Read of size 8 at addr ffff88800a7afb40 by task bash/1397
...
[] The buggy address belongs to stack of task bash/1397
[]  and is located at offset 56 in frame:
[]  validate_region_offset+0x0/0x1c0 [cxl_core]

Fixes: c3dd67681c70 ("cxl/region: Add inject and clear poison by region offset")
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/region.c