• Linus Torvalds's avatar
    Merge tag 'cxl-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 9d004b2f
    Linus Torvalds authored
    Pull cxl updates from Dan Williams:
     "Compute Express Link (CXL) updates for this cycle.
    
      The highlight is new driver-core infrastructure and CXL subsystem
      changes for allowing lockdep to validate device_lock() usage. Thanks
      to PeterZ for setting me straight on the current capabilities of the
      lockdep API, and Greg acked it as well.
    
      On the CXL ACPI side this update adds support for CXL _OSC so that
      platform firmware knows that it is safe to still grant Linux native
      control of PCIe hotplug and error handling in the presence of CXL
      devices. A circular dependency problem was discovered between suspend
      and CXL memory for cases where the suspend image might be stored in
      CXL memory where that image also contains the PCI register state to
      restore to re-enable the device. Disable suspend for now until an
      architecture is defined to clarify that conflict.
    
      Lastly a collection of reworks, fixes, and cleanups to the CXL
      subsystem where support for snooping mailbox commands and properly
      handling the "mem_enable" flow are the highlights.
    
      Summary:
    
       - Add driver-core infrastructure for lockdep validation of
         device_lock(), and fixup a deadlock report that was previously
         hidden behind the 'lockdep no validate' policy.
    
       - Add CXL _OSC support for claiming native control of CXL hotplug and
         error handling.
    
       - Disable suspend in the presence of CXL memory unless and until a
         protocol is identified for restoring PCI device context from memory
         hosted on CXL PCI devices.
    
       - Add support for snooping CXL mailbox commands to protect against
         inopportune changes, like set-partition with the 'immediate' flag
         set.
    
       - Rework how the driver detects legacy CXL 1.1 configurations (CXL
         DVSEC / 'mem_enable') before enabling new CXL 2.0 decode
         configurations (CXL HDM Capability).
    
       - Miscellaneous cleanups and fixes from -next exposure"
    
    * tag 'cxl-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (47 commits)
      cxl/port: Enable HDM Capability after validating DVSEC Ranges
      cxl/port: Reuse 'struct cxl_hdm' context for hdm init
      cxl/port: Move endpoint HDM Decoder Capability init to port driver
      cxl/pci: Drop @info argument to cxl_hdm_decode_init()
      cxl/mem: Merge cxl_dvsec_ranges() and cxl_hdm_decode_init()
      cxl/mem: Skip range enumeration if mem_enable clear
      cxl/mem: Consolidate CXL DVSEC Range enumeration in the core
      cxl/pci: Move cxl_await_media_ready() to the core
      cxl/mem: Validate port connectivity before dvsec ranges
      cxl/mem: Fix cxl_mem_probe() error exit
      cxl/pci: Drop wait_for_valid() from cxl_await_media_ready()
      cxl/pci: Consolidate wait_for_media() and wait_for_media_ready()
      cxl/mem: Drop mem_enabled check from wait_for_media()
      nvdimm: Fix firmware activation deadlock scenarios
      device-core: Kill the lockdep_mutex
      nvdimm: Drop nd_device_lock()
      ACPI: NFIT: Drop nfit_device_lock()
      nvdimm: Replace lockdep_mutex with local lock classes
      cxl: Drop cxl_device_lock()
      cxl/acpi: Add root device lockdep validation
      ...
    9d004b2f
pmem.c 19.5 KB