linux/drivers/cxl
Davidlohr Bueso 0c36b6ad43 cxl/mbox: Add sanitization handling machinery
Sanitization is by definition a device-monopolizing operation, and thus
the timeslicing rules for other background commands do not apply.
As such handle this special case asynchronously and return immediately.
Subsequent changes will allow completion to be pollable from userspace
via a sysfs file interface.

For devices that don't support interrupts for notifying background
command completion, self-poll with the caveat that the poller can
be out of sync with the ready hardware, and therefore care must be
taken to not allow any new commands to go through until the poller
sees the hw completion. The poller takes the mbox_mutex to stabilize
the flagging, minimizing any runtime overhead in the send path to
check for 'sanitize_tmo' for uncommon poll scenarios.

The irq case is much simpler as hardware will serialize/error
appropriately.

Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20230612181038.14421-4-dave@stgolabs.net
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2023-06-25 14:54:51 -07:00
..
core cxl/mbox: Add sanitization handling machinery 2023-06-25 14:54:51 -07:00
acpi.c Merge branch 'for-6.3/cxl-ram-region' into cxl/next 2023-02-10 18:11:01 -08:00
cxl.h cxl/mbox: Add background cmd handling machinery 2023-05-23 12:55:12 -07:00
cxlmem.h cxl/mbox: Add sanitization handling machinery 2023-06-25 14:54:51 -07:00
cxlpci.h cxl: Wait Memory_Info_Valid before access memory related info 2023-05-18 16:42:41 -07:00
Kconfig Merge branch 'for-6.3/cxl-ram-region' into cxl/next 2023-02-10 18:11:01 -08:00
Makefile cxl/pmem: Introduce nvdimm_security_ops with ->get_flags() operation 2022-11-30 16:30:47 -08:00
mem.c cxl: Move cxl_await_media_ready() to before capacity info retrieval 2023-05-18 16:43:45 -07:00
pci.c cxl/mbox: Add sanitization handling machinery 2023-06-25 14:54:51 -07:00
pmem.c cxl/pmem: Fix nvdimm registration races 2023-02-13 17:01:05 -08:00
port.c cxl: Move cxl_await_media_ready() to before capacity info retrieval 2023-05-18 16:43:45 -07:00
security.c cxl/mem: Introduce security state sysfs file 2023-06-25 14:54:51 -07:00