• Shuai Xue's avatar
    ACPI: APEI: EINJ: warn on invalid argument when explicitly indicated by platform · f1e65718
    Shuai Xue authored
    
    
    OSPM executes an EXECUTE_OPERATION action to instruct the platform to begin
    the injection operation, then executes a GET_COMMAND_STATUS action to
    determine the status of the completed operation. The ACPI Specification
    documented error codes[1] are:
    
    	0 = Success (Linux #define EINJ_STATUS_SUCCESS)
    	1 = Unknown failure (Linux #define EINJ_STATUS_FAIL)
    	2 = Invalid Access (Linux #define EINJ_STATUS_INVAL)
    
    The original code report -EBUSY for both "Unknown Failure" and "Invalid
    Access" cases. Actually, firmware could do some platform dependent sanity
    checks and returns different error codes, e.g. "Invalid Access" to indicate
    to the user that the parameters they supplied cannot be used for injection.
    
    To this end, fix to return -EINVAL in the __einj_error_inject() error
    handling case instead of always -EBUSY, when explicitly indicated by the
    platform in the status of the completed operation.
    
    [1] ACPI Specification 6.5 18.6.1. Error Injection Table
    Signed-off-by: default avatarShuai Xue <xueshuai@linux.alibaba.com>
    Reviewed-by: default avatarTony Luck <tony.luck@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    f1e65718
einj.c 21.3 KB