platform/chrome: cros_ec_proto: return -EPROTO if empty payload
authorTzung-Bi Shih <tzungbi@kernel.org>
Mon, 18 Jul 2022 05:09:14 +0000 (05:09 +0000)
committerTzung-Bi Shih <tzungbi@kernel.org>
Wed, 20 Jul 2022 01:22:58 +0000 (01:22 +0000)
cros_ec_wait_until_complete() sends EC_CMD_GET_COMMS_STATUS which expects
to receive sizeof(struct ec_response_get_comms_status) from
cros_ec_xfer_command().

Return -EPROTO if cros_ec_xfer_command() returns 0.

Reviewed-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Link: https://lore.kernel.org/r/20220718050914.2267370-11-tzungbi@kernel.org
drivers/platform/chrome/cros_ec_proto.c

index 9dec475..05d2e87 100644 (file)
@@ -163,6 +163,11 @@ static int cros_ec_wait_until_complete(struct cros_ec_device *ec_dev, uint32_t *
                if (msg->result != EC_RES_SUCCESS)
                        return ret;
 
+               if (ret == 0) {
+                       ret = -EPROTO;
+                       break;
+               }
+
                if (!(status->flags & EC_COMMS_STATUS_PROCESSING))
                        return ret;
        }