cxl/region: Fix cxl_region leak, cleanup targets at region delete
authorDan Williams <dan.j.williams@intel.com>
Fri, 4 Nov 2022 00:30:30 +0000 (17:30 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 4 Nov 2022 22:58:35 +0000 (15:58 -0700)
commit0d9e734018d70cecf79e2e4c6082167160a0f13f
tree0b1b634170cd8b47e5c2034a87c811843ff25ce9
parenta90accb358ae33ea982a35595573f7a045993f8b
cxl/region: Fix cxl_region leak, cleanup targets at region delete

When a region is deleted any targets that have been previously assigned
to that region hold references to it. Trigger those references to
drop by detaching all targets at unregister_region() time.

Otherwise that region object will leak as userspace has lost the ability
to detach targets once region sysfs is torn down.

Cc: <stable@vger.kernel.org>
Fixes: b9686e8c8e39 ("cxl/region: Enable the assignment of endpoint decoders to regions")
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Link: https://lore.kernel.org/r/166752183055.947915.17681995648556534844.stgit@dwillia2-xfh.jf.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/core/region.c