Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fb76c3c authored by David Lin's avatar David Lin Committed by Greg Kroah-Hartman
Browse files

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: default avatarDavid Lin <dtwlin@google.com>
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 44d64493
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1145,6 +1145,7 @@ struct gb_svc_pwrmon_rail_count_get_response {
#define GB_SVC_PWRMON_RAIL_NAME_BUFSIZE		32

struct gb_svc_pwrmon_rail_names_get_response {
	__u8	status;
	__u8	name[0][GB_SVC_PWRMON_RAIL_NAME_BUFSIZE];
} __packed;

+9 −1
Original line number Diff line number Diff line
@@ -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)