]> www.infradead.org Git - users/jedix/linux-maple.git/commit
cxl/core: Replace devm_cxl_add_decoder() with non-devm version
authorDan Williams <dan.j.williams@intel.com>
Thu, 26 Aug 2021 23:32:13 +0000 (16:32 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sat, 28 Aug 2021 21:47:40 +0000 (14:47 -0700)
commite13d206924f51efbf7fce355c97fdacaad18ec04
treeebc2720830251c6bf7aadce0d2e2ac121fd7caf4
parent036a16a39e2fab9bf7279201d04cf7e90993521f
cxl/core: Replace devm_cxl_add_decoder() with non-devm version

The split of devm_cxl_add_decoder() to factor out cxl_decoder_alloc()
introduced a couple bugs. An initialization order bug, and a layering
violation around assumptions about who is responsible for put_device()
when device_add() for the decoder fails. Fix this by making the caller
responsible for registering a devm callback to trigger
device_unregister() for the decoder device.

Fixes: b7ca54b62551 ("cxl/core: Split decoder setup into alloc + add")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Nathan Chancellor <nathan@kernel.org>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/163002073312.1700305.17017280228713298614.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/acpi.c
drivers/cxl/core/bus.c
drivers/cxl/core/core.h
drivers/cxl/core/pmem.c
drivers/cxl/cxl.h