OSDN Git Service

cxl: Prove CXL locking
authorDan Williams <dan.j.williams@intel.com>
Mon, 31 Jan 2022 19:50:09 +0000 (11:50 -0800)
committerDan Williams <dan.j.williams@intel.com>
Wed, 9 Feb 2022 06:57:29 +0000 (22:57 -0800)
commit3c5b903955251ea464fca383a42d981e33004df6
treec4ff8665db9ad785d73be3a5ec462964e2148b86
parent53fa1bff3426344d466d91e81f076eab677d0ece
cxl: Prove CXL locking

When CONFIG_PROVE_LOCKING is enabled the 'struct device' definition gets
an additional mutex that is not clobbered by
lockdep_set_novalidate_class() like the typical device_lock(). This
allows for local annotation of subsystem locks with mutex_lock_nested()
per the subsystem's object/lock hierarchy. For CXL, this primarily needs
the ability to lock ports by depth and child objects of ports by their
parent parent-port lock.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Ben Widawsky <ben.widawsky@intel.com>
Link: https://lore.kernel.org/r/164365853422.99383.1052399160445197427.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/acpi.c
drivers/cxl/core/pmem.c
drivers/cxl/core/port.c
drivers/cxl/cxl.h
drivers/cxl/pmem.c
drivers/nvdimm/nd-core.h
lib/Kconfig.debug