cros_ec_debugfs: Pass proper struct sizes to cros_ec_cmd_xfer()
authorShawn Nematbakhsh <shawnn@chromium.org>
Thu, 16 Feb 2017 17:49:29 +0000 (09:49 -0800)
committerBenson Leung <bleung@chromium.org>
Fri, 16 Jun 2017 20:57:45 +0000 (13:57 -0700)
We should output or receive every byte in the param / reply struct,
unrelated to the pointer size.

Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
[bleung: Picked from crosreview.com/444085 for cros_ec_debugfs.c only.
 cros_ec.c upstream had a different cros_ec_sleep_event which didn't
 have the sizeof issue]
Signed-off-by: Benson Leung <bleung@chromium.org>
drivers/platform/chrome/cros_ec_debugfs.c

index 225f936..c415087 100644 (file)
@@ -227,14 +227,14 @@ static int ec_read_version_supported(struct cros_ec_dev *ec)
 
        struct cros_ec_command *msg;
 
-       msg = kzalloc(sizeof(*msg) + max(sizeof(params), sizeof(response)),
+       msg = kzalloc(sizeof(*msg) + max(sizeof(*params), sizeof(*response)),
                GFP_KERNEL);
        if (!msg)
                return 0;
 
        msg->command = EC_CMD_GET_CMD_VERSIONS + ec->cmd_offset;
-       msg->outsize = sizeof(params);
-       msg->insize = sizeof(response);
+       msg->outsize = sizeof(*params);
+       msg->insize = sizeof(*response);
 
        params = (struct ec_params_get_cmd_versions_v1 *)msg->data;
        params->cmd = EC_CMD_CONSOLE_READ;