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: David Lin <dtwlin@google.com> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Родитель
309520ec93
Коммит
30b442b385
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче