cxl/pci: Introduce cdevm_file_operations
authorDan Williams <dan.j.williams@intel.com>
Mon, 2 Aug 2021 17:29:59 +0000 (10:29 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 6 Aug 2021 15:22:53 +0000 (08:22 -0700)
commit9cc238c7a526dba9ee8c210fa2828886fc65db66
tree07ffce1f637c7ba9b1601a7db49c07370eb3fa65
parent0f06157e0135f5563efbc9aadbd93ba3d9322cab
cxl/pci: Introduce cdevm_file_operations

In preparation for moving cxl_memdev allocation to the core, introduce
cdevm_file_operations to coordinate file operations shutdown relative to
driver data release.

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 will fix a use after free bug when looping driver
load / unload with CONFIG_DEBUG_KOBJECT_RELEASE=y.

Another motivation for passing in file_operations to the core cxl_memdev
creation flow is to allow for alternate drivers, like unit test code, to
define their own ioctl backends.

Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/162792539962.368511.2962268954245340288.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/cxlmem.h
drivers/cxl/pci.c