cxl/core: Move memdev management to core
authorBen Widawsky <ben.widawsky@intel.com>
Mon, 2 Aug 2021 17:30:05 +0000 (10:30 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 6 Aug 2021 15:22:54 +0000 (08:22 -0700)
commit3d135db510240fefd79da46181493d3e3b415f6b
tree037ec26d21c8fee3c90323c3ddd628a829032d8e
parent9cc238c7a526dba9ee8c210fa2828886fc65db66
cxl/core: Move memdev management to core

The motivation for moving cxl_memdev allocation to the core (beyond
better file organization of sysfs attributes in core/ and drivers in
cxl/), is that device lifetime is longer than module lifetime. The cxl_pci
module should be free to come and go without needing to coordinate with
devices that need the text associated with cxl_memdev_release() to stay
resident. The move fixes a use after free bug when looping driver
load / unload with CONFIG_DEBUG_KOBJECT_RELEASE=y.

Another motivation for disconnecting cxl_memdev creation from cxl_pci is
to enable other drivers, like a unit test driver, to registers memdevs.

Fixes: b39cb1052a5c ("cxl/mem: Register CXL memX devices")
Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/162792540495.368511.9748638751088219595.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/core/Makefile
drivers/cxl/core/bus.c
drivers/cxl/core/core.h
drivers/cxl/core/memdev.c [new file with mode: 0644]
drivers/cxl/cxlmem.h
drivers/cxl/pci.c