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

Commit 30b442b3 authored by David Lin's avatar David Lin Committed by Greg Kroah-Hartman
Browse files

greybus: greybus_trace: Fix broken greybus ftrace



Enabling greybus ftrace event causes null pointer access due to
that gb_message to SVC has no Bundle. Fix it by handling this in
the trace header.

Testing Done:
$ echo 1 > /d/tracing/event/greybus/enable
 [002] ...1    54.504426: gb_message_send: greybus:1-svc op=0023 if_id=0 hd_id=0 l=0
 [002] ...1    54.504461: gb_host_device_send: greybus:greybus1 if_id=0 l=8

Signed-off-by: default avatarDavid Lin <dtwlin@google.com>
Reviewed-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 309520ec
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -17,6 +17,11 @@
struct gb_message;
struct gb_host_device;

#define gb_bundle_name(message)                                  \
	(message->operation->connection->bundle ?                 \
	dev_name(&message->operation->connection->bundle->dev) :  \
	dev_name(&message->operation->connection->hd->svc->dev))

DECLARE_EVENT_CLASS(gb_message,

	TP_PROTO(struct gb_message *message),
@@ -24,7 +29,7 @@ DECLARE_EVENT_CLASS(gb_message,
	TP_ARGS(message),

	TP_STRUCT__entry(
		__string(name, dev_name(&message->operation->connection->bundle->dev))
		__string(name, gb_bundle_name(message))
		__field(u16, op_id)
		__field(u16, intf_cport_id)
		__field(u16, hd_cport_id)
@@ -32,7 +37,7 @@ DECLARE_EVENT_CLASS(gb_message,
	),

	TP_fast_assign(
		__assign_str(name, dev_name(&message->operation->connection->bundle->dev))
		__assign_str(name, gb_bundle_name(message))
		__entry->op_id = message->operation->id;
		__entry->intf_cport_id =
			message->operation->connection->intf_cport_id;