Use a better mapping of hypervisor status codes to errno values and
disambiguate the catch-all -EIO value. While here, remove the duplicate
INVALID_LP_INDEX and INVALID_REGISTER_VALUES hypervisor status entries.

Fixes: 3817854ba89201 ("hyperv: Log hypercall status codes as strings")
Signed-off-by: Easwar Hariharan <[email protected]>
---
Changes in v2: Change more values, delete duplicated entries
v1: 
https://lore.kernel.org/all/[email protected]/
---
 drivers/hv/hv_common.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c
index 49898d10fafff..bb32471a53d68 100644
--- a/drivers/hv/hv_common.c
+++ b/drivers/hv/hv_common.c
@@ -758,32 +758,30 @@ static const struct hv_status_info hv_status_infos[] = {
        _STATUS_INFO(HV_STATUS_SUCCESS,                         0),
        _STATUS_INFO(HV_STATUS_INVALID_HYPERCALL_CODE,          -EINVAL),
        _STATUS_INFO(HV_STATUS_INVALID_HYPERCALL_INPUT,         -EINVAL),
-       _STATUS_INFO(HV_STATUS_INVALID_ALIGNMENT,               -EIO),
+       _STATUS_INFO(HV_STATUS_INVALID_ALIGNMENT,               -EINVAL),
        _STATUS_INFO(HV_STATUS_INVALID_PARAMETER,               -EINVAL),
-       _STATUS_INFO(HV_STATUS_ACCESS_DENIED,                   -EIO),
-       _STATUS_INFO(HV_STATUS_INVALID_PARTITION_STATE,         -EIO),
-       _STATUS_INFO(HV_STATUS_OPERATION_DENIED,                -EIO),
+       _STATUS_INFO(HV_STATUS_ACCESS_DENIED,                   -EACCES),
+       _STATUS_INFO(HV_STATUS_INVALID_PARTITION_STATE,         -EINVAL),
+       _STATUS_INFO(HV_STATUS_OPERATION_DENIED,                -EACCES),
        _STATUS_INFO(HV_STATUS_UNKNOWN_PROPERTY,                -EIO),
-       _STATUS_INFO(HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE,     -EIO),
+       _STATUS_INFO(HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE,     -ERANGE),
        _STATUS_INFO(HV_STATUS_INSUFFICIENT_MEMORY,             -ENOMEM),
        _STATUS_INFO(HV_STATUS_INVALID_PARTITION_ID,            -EINVAL),
        _STATUS_INFO(HV_STATUS_INVALID_VP_INDEX,                -EINVAL),
        _STATUS_INFO(HV_STATUS_NOT_FOUND,                       -EIO),
        _STATUS_INFO(HV_STATUS_INVALID_PORT_ID,                 -EINVAL),
        _STATUS_INFO(HV_STATUS_INVALID_CONNECTION_ID,           -EINVAL),
-       _STATUS_INFO(HV_STATUS_INSUFFICIENT_BUFFERS,            -EIO),
-       _STATUS_INFO(HV_STATUS_NOT_ACKNOWLEDGED,                -EIO),
-       _STATUS_INFO(HV_STATUS_INVALID_VP_STATE,                -EIO),
+       _STATUS_INFO(HV_STATUS_INSUFFICIENT_BUFFERS,            -ENOBUFS),
+       _STATUS_INFO(HV_STATUS_NOT_ACKNOWLEDGED,                -EBUSY),
+       _STATUS_INFO(HV_STATUS_INVALID_VP_STATE,                -EINVAL),
        _STATUS_INFO(HV_STATUS_NO_RESOURCES,                    -EIO),
        _STATUS_INFO(HV_STATUS_PROCESSOR_FEATURE_NOT_SUPPORTED, -EIO),
        _STATUS_INFO(HV_STATUS_INVALID_LP_INDEX,                -EINVAL),
        _STATUS_INFO(HV_STATUS_INVALID_REGISTER_VALUE,          -EINVAL),
-       _STATUS_INFO(HV_STATUS_INVALID_LP_INDEX,                -EIO),
-       _STATUS_INFO(HV_STATUS_INVALID_REGISTER_VALUE,          -EIO),
        _STATUS_INFO(HV_STATUS_OPERATION_FAILED,                -EIO),
-       _STATUS_INFO(HV_STATUS_TIME_OUT,                        -EIO),
+       _STATUS_INFO(HV_STATUS_TIME_OUT,                        -ETIMEDOUT),
        _STATUS_INFO(HV_STATUS_CALL_PENDING,                    -EIO),
-       _STATUS_INFO(HV_STATUS_VTL_ALREADY_ENABLED,             -EIO),
+       _STATUS_INFO(HV_STATUS_VTL_ALREADY_ENABLED,             -EBUSY),
 #undef _STATUS_INFO
 };
 
-- 
2.43.0


Reply via email to