diff options
| author | Dan Williams <[email protected]> | 2025-07-11 23:49:31 +0000 |
|---|---|---|
| committer | Dave Jiang <[email protected]> | 2025-07-16 18:34:36 +0000 |
| commit | b3a88225519cfd05d71b99946d37476c941145b8 (patch) | |
| tree | 47d5a5ceb3cf80c128f5cc1d9fb649c805125c1f /tools/perf/scripts/python/arm-cs-trace-disasm.py | |
| parent | cxl/region: Move ready-to-probe state check to a helper (diff) | |
| download | kernel-b3a88225519cfd05d71b99946d37476c941145b8.tar.gz kernel-b3a88225519cfd05d71b99946d37476c941145b8.zip | |
cxl/region: Consolidate cxl_decoder_kill_region() and cxl_region_detach()
Both detach_target() and cxld_unregister() want to tear down a cxl_region
when an endpoint decoder is either detached or destroyed.
When a region is to be destroyed cxl_region_detach() releases
cxl_region_rwsem unbinds the cxl_region driver and re-acquires the rwsem.
This "reverse" locking pattern is difficult to reason about, not amenable
to scope-based cleanup, and the minor differences in the calling context of
detach_target() and cxld_unregister() currently results in the
cxl_decoder_kill_region() wrapper.
Introduce cxl_decoder_detach() to wrap a core __cxl_decoder_detach() that
serves both cases. I.e. either detaching a known position in a region
(interruptible), or detaching an endpoint decoder if it is found to be a
member of a region (uninterruptible).
Cc: Davidlohr Bueso <[email protected]>
Cc: Jonathan Cameron <[email protected]>
Cc: Dave Jiang <[email protected]>
Cc: Alison Schofield <[email protected]>
Cc: Vishal Verma <[email protected]>
Cc: Ira Weiny <[email protected]>
Acked-by: Peter Zijlstra (Intel) <[email protected]>
Signed-off-by: Dan Williams <[email protected]>
Reviewed-by: Fabio M. De Francesco <[email protected]>
Reviewed-by: Dave Jiang <[email protected]>
Reviewed-by: Jonathan Cameron <[email protected]>
Reviewed-by: Alison Schofield <[email protected]>
Reviewed-by: Davidlohr Bueso <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Dave Jiang <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/arm-cs-trace-disasm.py')
0 files changed, 0 insertions, 0 deletions
