]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
cxl/region: Avoid null pointer dereference in region lookup
authorAlison Schofield <alison.schofield@intel.com>
Tue, 4 Jun 2024 00:36:09 +0000 (17:36 -0700)
committerDave Jiang <dave.jiang@intel.com>
Tue, 25 Jun 2024 21:39:52 +0000 (14:39 -0700)
commit285f2a08841432fc3e498b1cd00cce5216cdf189
tree4671ebb1dec03a0b55769d19ea00097c91080d76
parent84ec985944ef34a34a1605b93ce401aa8737af96
cxl/region: Avoid null pointer dereference in region lookup

cxl_dpa_to_region() looks up a region based on a memdev and DPA.
It wrongly assumes an endpoint found mapping the DPA is also of
a fully assembled region. When not true it leads to a null pointer
dereference looking up the region name.

This appears during testing of region lookup after a failure to
assemble a BIOS defined region or if the lookup raced with the
assembly of the BIOS defined region.

Failure to clean up BIOS defined regions that fail assembly is an
issue in itself and a fix to that problem will alleviate some of
the impact. It will not alleviate the race condition so let's harden
this path.

The behavior change is that the kernel oops due to a null pointer
dereference is replaced with a dev_dbg() message noting that an
endpoint was mapped.

Additional comments are added so that future users of this function
can more clearly understand what it provides.

Fixes: 0a105ab28a4d ("cxl/memdev: Warn of poison inject or clear to a mapped region")
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://patch.msgid.link/20240604003609.202682-1-alison.schofield@intel.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/region.c