History

Merge tag 'cxl-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl

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 ...

Linus Torvalds committed 4 years ago

Commit 9d004b22 parents a9f9482 34e37b448 files · +1266 −863Browse files

Showing the changes to include/uapi (1 of 48 files). Show all

Unified · Split

include/uapi/linux/cxl_mem.h+7−7
@@ -68,8 +68,8 @@ static const struct { · 67 unmodified lines
68 * struct cxl_command_info - Command information returned from a query.68 * struct cxl_command_info - Command information returned from a query.
69 * @id: ID number for the command.69 * @id: ID number for the command.
70 * @flags: Flags that specify command behavior.70 * @flags: Flags that specify command behavior.
71 * @size_in: Expected input size, or -1 if variable length.71 * @size_in: Expected input size, or ~0 if variable length.
72 * @size_out: Expected output size, or -1 if variable length.72 * @size_out: Expected output size, or ~0 if variable length.
73 *73 *
74 * Represents a single command that is supported by both the driver and the74 * Represents a single command that is supported by both the driver and the
75 * hardware. This is returned as part of an array from the query ioctl. The75 * hardware. This is returned as part of an array from the query ioctl. The
@@ -78,7 +78,7 @@ static const struct { · 2 unmodified lines
78 *78 *
79 * - @id = 1079 * - @id = 10
80 * - @flags = 080 * - @flags = 0
81 * - @size_in = -181 * - @size_in = ~0
82 * - @size_out = 082 * - @size_out = 0
83 *83 *
84 * See struct cxl_mem_query_commands.84 * See struct cxl_mem_query_commands.
@@ -89,8 +89,8 @@ struct cxl_command_info { · 4 unmodified lines
89 __u32 flags;89 __u32 flags;
90#define CXL_MEM_COMMAND_FLAG_MASK GENMASK(0, 0)90#define CXL_MEM_COMMAND_FLAG_MASK GENMASK(0, 0)
91 91
92 __s32 size_in;92 __u32 size_in;
93 __s32 size_out;93 __u32 size_out;
94};94};
95 95
96/**96/**
@@ -169,13 +169,13 @@ struct cxl_send_command { · 72 unmodified lines
169 __u32 retval;169 __u32 retval;
170 170
171 struct {171 struct {
172 __s32 size;172 __u32 size;
173 __u32 rsvd;173 __u32 rsvd;
174 __u64 payload;174 __u64 payload;
175 } in;175 } in;
176 176
177 struct {177 struct {
178 __s32 size;178 __u32 size;
179 __u32 rsvd;179 __u32 rsvd;
180 __u64 payload;180 __u64 payload;
181 } out;181 } out;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t