diff options
| author | Vishal Verma <[email protected]> | 2022-11-01 07:41:00 +0000 |
|---|---|---|
| committer | Dan Williams <[email protected]> | 2022-11-01 22:33:07 +0000 |
| commit | 71ee71d7adcba648077997a29a91158d20c40b09 (patch) | |
| tree | 72fcf55fcadc94e4cc88efe8273fc5fd96afce49 /tools/perf/util/scripting-engines/trace-event-perl.c | |
| parent | ACPI: NUMA: Add CXL CFMWS 'nodes' to the possible nodes set (diff) | |
| download | kernel-71ee71d7adcba648077997a29a91158d20c40b09.tar.gz kernel-71ee71d7adcba648077997a29a91158d20c40b09.zip | |
cxl/region: Fix decoder allocation crash
When an intermediate port's decoders have been exhausted by existing
regions, and creating a new region with the port in question in it's
hierarchical path is attempted, cxl_port_attach_region() fails to find a
port decoder (as would be expected), and drops into the failure / cleanup
path.
However, during cleanup of the region reference, a sanity check attempts
to dereference the decoder, which in the above case didn't exist. This
causes a NULL pointer dereference BUG.
To fix this, refactor the decoder allocation and de-allocation into
helper routines, and in this 'free' routine, check that the decoder,
@cxld, is valid before attempting any operations on it.
Cc: <[email protected]>
Suggested-by: Dan Williams <[email protected]>
Signed-off-by: Vishal Verma <[email protected]>
Reviewed-by: Dave Jiang <[email protected]>
Fixes: 384e624bb211 ("cxl/region: Attach endpoint decoders")
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dan Williams <[email protected]>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-perl.c')
0 files changed, 0 insertions, 0 deletions
