Commit 591209c7 authored by Alison Schofield's avatar Alison Schofield Committed by Dave Jiang
Browse files

cxl/memdev: Replace ENXIO with EBUSY for inject poison limit reached



The CXL driver provides a debugfs interface offering users the
ability to inject and clear poison to a memdev. Once a user has
injected up to the devices limit further injection requests fail
with ENXIO until a clear poison is issued.

Users may not have device specs in hand or may want to intentionally
hit the limit and then clear. Replace the usual ENXIO return status
with EBUSY so users can recognize this failure.

Signed-off-by: default avatarAlison Schofield <alison.schofield@intel.com>
Tested-by: default avatarXingtao Yao <yaoxt.fnst@fujitsu.com>
Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
Reviewed-by: default avatarDavidlohr Bueso <dave@stgolabs.net>
Link: https://patch.msgid.link/825bd4c67fb55a4373c4182d999ad49d4e6b4fe7.1720316188.git.alison.schofield@intel.com


Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
parent bebfbbaf
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -14,9 +14,10 @@ Description:
		event to its internal Informational Event log, updates the
		Event Status register, and if configured, interrupts the host.
		It is not an error to inject poison into an address that
		already has poison present and no error is returned. The
		inject_poison attribute is only visible for devices supporting
		the capability.
		already has poison present and no error is returned. If the
		device returns 'Inject Poison Limit Reached' an -EBUSY error
		is returned to the user. The inject_poison attribute is only
		visible for devices supporting the capability.


What:		/sys/kernel/debug/memX/clear_poison
+1 −1
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ struct cxl_mbox_cmd {
	C(FWRESET, -ENXIO, "FW failed to activate, needs cold reset"),		\
	C(HANDLE, -ENXIO, "one or more Event Record Handles were invalid"),     \
	C(PADDR, -EFAULT, "physical address specified is invalid"),		\
	C(POISONLMT, -ENXIO, "poison injection limit has been reached"),        \
	C(POISONLMT, -EBUSY, "poison injection limit has been reached"),        \
	C(MEDIAFAILURE, -ENXIO, "permanent issue with the media"),		\
	C(ABORT, -ENXIO, "background cmd was aborted by device"),               \
	C(SECURITY, -ENXIO, "not valid in the current security state"),         \