diff options
author | David Lin <dtwlin@google.com> | 2016-06-08 09:39:00 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-06-08 10:21:34 -0700 |
commit | 8fb76c3cfd5c54cb0d8713436d480a8062217d5c (patch) | |
tree | 7e332a9bdfc3c8eeb36dd6b5105a397d4a8aa73f /drivers/staging/greybus/svc.c | |
parent | 44d6449350b866cbea613aabe5aba4aa640791cd (diff) |
greybus: svc: pwrmon: validate svc protocol op status when getting rail names
AP should check for Greybus SVC Protocol Operation Status to determine if the
operation was successfully completed by the SVC
Testing Done:
- Successfully getting the rail names in the pwrmon_dummy sandbox branch
Signed-off-by: David Lin <dtwlin@google.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/svc.c')
-rw-r--r-- | drivers/staging/greybus/svc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index bfdd0ce37623..e2ab94277b4e 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -135,6 +135,13 @@ static int gb_svc_pwrmon_rail_names_get(struct gb_svc *svc, return ret; } + if (response->status != GB_SVC_OP_SUCCESS) { + dev_err(&svc->dev, + "SVC error while getting rail names: %u\n", + response->status); + return -EREMOTEIO; + } + return 0; } @@ -778,7 +785,8 @@ static void gb_svc_pwrmon_debugfs_init(struct gb_svc *svc) if (!rail_count || rail_count > GB_SVC_PWRMON_MAX_RAIL_COUNT) goto err_pwrmon_debugfs; - bufsize = GB_SVC_PWRMON_RAIL_NAME_BUFSIZE * rail_count; + bufsize = sizeof(*rail_names) + + GB_SVC_PWRMON_RAIL_NAME_BUFSIZE * rail_count; rail_names = kzalloc(bufsize, GFP_KERNEL); if (!rail_names) |