firewire fixes for v6.10-rc4
- Update tracepoints events introduced in v6.10-rc1 so that it includes the numeric identifier of host card in which the event happens. - replace wiki URL with the current website URL in Kconfig -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQQE66IEYNDXNBPeGKSsLtaWM8LwEwUCZm1CswAKCRCsLtaWM8Lw ExhaAQCu+YeWgrb6eg1ngZVvFYz03xfrItwQrfVBmifNo3PpxAD/azbA7HbquaC+ cueCZmjqxk9SLu4FnrZpExFtQjfvGA4= =3X30 -----END PGP SIGNATURE----- Merge tag 'firewire-fixes-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 Pull firewire fixes from Takashi Sakamoto: - Update tracepoints events introduced in v6.10-rc1 so that it includes the numeric identifier of host card in which the event happens - replace wiki URL with the current website URL in Kconfig * tag 'firewire-fixes-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: firewire: core: record card index in bus_reset_handle tracepoints event firewire: core: record card index in tracepoinrts events derived from bus_reset_arrange_template firewire: core: record card index in async_phy_inbound tracepoints event firewire: core: record card index in async_phy_outbound_complete tracepoints event firewire: core: record card index in async_phy_outbound_initiate tracepoints event firewire: core: record card index in tracepoinrts events derived from async_inbound_template firewire: core: record card index in tracepoinrts events derived from async_outbound_initiate_template firewire: core: record card index in tracepoinrts events derived from async_outbound_complete_template firewire: fix website URL in Kconfig
This commit is contained in:
commit
be2fa8865c
|
@ -11,7 +11,7 @@ config FIREWIRE
|
|||
This is the new-generation IEEE 1394 (FireWire) driver stack
|
||||
a.k.a. Juju, a new implementation designed for robustness and
|
||||
simplicity.
|
||||
See http://ieee1394.wiki.kernel.org/index.php/Juju_Migration
|
||||
See http://ieee1394.docs.kernel.org/en/latest/migration.html
|
||||
for information about migration from the older Linux 1394 stack
|
||||
to the new driver stack.
|
||||
|
||||
|
|
|
@ -222,14 +222,14 @@ static int reset_bus(struct fw_card *card, bool short_reset)
|
|||
int reg = short_reset ? 5 : 1;
|
||||
int bit = short_reset ? PHY_BUS_SHORT_RESET : PHY_BUS_RESET;
|
||||
|
||||
trace_bus_reset_initiate(card->generation, short_reset);
|
||||
trace_bus_reset_initiate(card->index, card->generation, short_reset);
|
||||
|
||||
return card->driver->update_phy_reg(card, reg, 0, bit);
|
||||
}
|
||||
|
||||
void fw_schedule_bus_reset(struct fw_card *card, bool delayed, bool short_reset)
|
||||
{
|
||||
trace_bus_reset_schedule(card->generation, short_reset);
|
||||
trace_bus_reset_schedule(card->index, card->generation, short_reset);
|
||||
|
||||
/* We don't try hard to sort out requests of long vs. short resets. */
|
||||
card->br_short = short_reset;
|
||||
|
@ -249,7 +249,7 @@ static void br_work(struct work_struct *work)
|
|||
/* Delay for 2s after last reset per IEEE 1394 clause 8.2.1. */
|
||||
if (card->reset_jiffies != 0 &&
|
||||
time_before64(get_jiffies_64(), card->reset_jiffies + 2 * HZ)) {
|
||||
trace_bus_reset_postpone(card->generation, card->br_short);
|
||||
trace_bus_reset_postpone(card->index, card->generation, card->br_short);
|
||||
|
||||
if (!queue_delayed_work(fw_workqueue, &card->br_work, 2 * HZ))
|
||||
fw_card_put(card);
|
||||
|
|
|
@ -1559,7 +1559,7 @@ static void outbound_phy_packet_callback(struct fw_packet *packet,
|
|||
struct client *e_client = e->client;
|
||||
u32 rcode;
|
||||
|
||||
trace_async_phy_outbound_complete((uintptr_t)packet, status, packet->generation,
|
||||
trace_async_phy_outbound_complete((uintptr_t)packet, card->index, status, packet->generation,
|
||||
packet->timestamp);
|
||||
|
||||
switch (status) {
|
||||
|
@ -1659,8 +1659,8 @@ static int ioctl_send_phy_packet(struct client *client, union ioctl_arg *arg)
|
|||
memcpy(pp->data, a->data, sizeof(a->data));
|
||||
}
|
||||
|
||||
trace_async_phy_outbound_initiate((uintptr_t)&e->p, e->p.generation, e->p.header[1],
|
||||
e->p.header[2]);
|
||||
trace_async_phy_outbound_initiate((uintptr_t)&e->p, card->index, e->p.generation,
|
||||
e->p.header[1], e->p.header[2]);
|
||||
|
||||
card->driver->send_request(card, &e->p);
|
||||
|
||||
|
|
|
@ -508,7 +508,7 @@ void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation,
|
|||
struct fw_node *local_node;
|
||||
unsigned long flags;
|
||||
|
||||
trace_bus_reset_handle(generation, node_id, bm_abdicate, self_ids, self_id_count);
|
||||
trace_bus_reset_handle(card->index, generation, node_id, bm_abdicate, self_ids, self_id_count);
|
||||
|
||||
spin_lock_irqsave(&card->lock, flags);
|
||||
|
||||
|
|
|
@ -174,8 +174,8 @@ static void transmit_complete_callback(struct fw_packet *packet,
|
|||
struct fw_transaction *t =
|
||||
container_of(packet, struct fw_transaction, packet);
|
||||
|
||||
trace_async_request_outbound_complete((uintptr_t)t, packet->generation, packet->speed,
|
||||
status, packet->timestamp);
|
||||
trace_async_request_outbound_complete((uintptr_t)t, card->index, packet->generation,
|
||||
packet->speed, status, packet->timestamp);
|
||||
|
||||
switch (status) {
|
||||
case ACK_COMPLETE:
|
||||
|
@ -398,7 +398,8 @@ void __fw_send_request(struct fw_card *card, struct fw_transaction *t, int tcode
|
|||
|
||||
spin_unlock_irqrestore(&card->lock, flags);
|
||||
|
||||
trace_async_request_outbound_initiate((uintptr_t)t, generation, speed, t->packet.header, payload,
|
||||
trace_async_request_outbound_initiate((uintptr_t)t, card->index, generation, speed,
|
||||
t->packet.header, payload,
|
||||
tcode_is_read_request(tcode) ? 0 : length / 4);
|
||||
|
||||
card->driver->send_request(card, &t->packet);
|
||||
|
@ -463,7 +464,7 @@ static DECLARE_COMPLETION(phy_config_done);
|
|||
static void transmit_phy_packet_callback(struct fw_packet *packet,
|
||||
struct fw_card *card, int status)
|
||||
{
|
||||
trace_async_phy_outbound_complete((uintptr_t)packet, packet->generation, status,
|
||||
trace_async_phy_outbound_complete((uintptr_t)packet, card->index, packet->generation, status,
|
||||
packet->timestamp);
|
||||
complete(&phy_config_done);
|
||||
}
|
||||
|
@ -503,7 +504,7 @@ void fw_send_phy_config(struct fw_card *card,
|
|||
phy_config_packet.generation = generation;
|
||||
reinit_completion(&phy_config_done);
|
||||
|
||||
trace_async_phy_outbound_initiate((uintptr_t)&phy_config_packet,
|
||||
trace_async_phy_outbound_initiate((uintptr_t)&phy_config_packet, card->index,
|
||||
phy_config_packet.generation, phy_config_packet.header[1],
|
||||
phy_config_packet.header[2]);
|
||||
|
||||
|
@ -674,7 +675,7 @@ static void free_response_callback(struct fw_packet *packet,
|
|||
{
|
||||
struct fw_request *request = container_of(packet, struct fw_request, response);
|
||||
|
||||
trace_async_response_outbound_complete((uintptr_t)request, packet->generation,
|
||||
trace_async_response_outbound_complete((uintptr_t)request, card->index, packet->generation,
|
||||
packet->speed, status, packet->timestamp);
|
||||
|
||||
// Decrease the reference count since not at in-flight.
|
||||
|
@ -879,9 +880,10 @@ void fw_send_response(struct fw_card *card,
|
|||
// Increase the reference count so that the object is kept during in-flight.
|
||||
fw_request_get(request);
|
||||
|
||||
trace_async_response_outbound_initiate((uintptr_t)request, request->response.generation,
|
||||
request->response.speed, request->response.header,
|
||||
data, data ? data_length / 4 : 0);
|
||||
trace_async_response_outbound_initiate((uintptr_t)request, card->index,
|
||||
request->response.generation, request->response.speed,
|
||||
request->response.header, data,
|
||||
data ? data_length / 4 : 0);
|
||||
|
||||
card->driver->send_response(card, &request->response);
|
||||
}
|
||||
|
@ -995,7 +997,7 @@ void fw_core_handle_request(struct fw_card *card, struct fw_packet *p)
|
|||
|
||||
tcode = async_header_get_tcode(p->header);
|
||||
if (tcode_is_link_internal(tcode)) {
|
||||
trace_async_phy_inbound((uintptr_t)p, p->generation, p->ack, p->timestamp,
|
||||
trace_async_phy_inbound((uintptr_t)p, card->index, p->generation, p->ack, p->timestamp,
|
||||
p->header[1], p->header[2]);
|
||||
fw_cdev_handle_phy_packet(card, p);
|
||||
return;
|
||||
|
@ -1007,8 +1009,8 @@ void fw_core_handle_request(struct fw_card *card, struct fw_packet *p)
|
|||
return;
|
||||
}
|
||||
|
||||
trace_async_request_inbound((uintptr_t)request, p->generation, p->speed, p->ack,
|
||||
p->timestamp, p->header, request->data,
|
||||
trace_async_request_inbound((uintptr_t)request, card->index, p->generation, p->speed,
|
||||
p->ack, p->timestamp, p->header, request->data,
|
||||
tcode_is_read_request(tcode) ? 0 : request->length / 4);
|
||||
|
||||
offset = async_header_get_offset(p->header);
|
||||
|
@ -1078,8 +1080,8 @@ void fw_core_handle_response(struct fw_card *card, struct fw_packet *p)
|
|||
}
|
||||
spin_unlock_irqrestore(&card->lock, flags);
|
||||
|
||||
trace_async_response_inbound((uintptr_t)t, p->generation, p->speed, p->ack, p->timestamp,
|
||||
p->header, data, data_length / 4);
|
||||
trace_async_response_inbound((uintptr_t)t, card->index, p->generation, p->speed, p->ack,
|
||||
p->timestamp, p->header, data, data_length / 4);
|
||||
|
||||
if (!t) {
|
||||
timed_out:
|
||||
|
|
|
@ -36,10 +36,11 @@
|
|||
#define QUADLET_SIZE 4
|
||||
|
||||
DECLARE_EVENT_CLASS(async_outbound_initiate_template,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, generation, scode, header, data, data_count),
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, card_index, generation, scode, header, data, data_count),
|
||||
TP_STRUCT__entry(
|
||||
__field(u64, transaction)
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u8, scode)
|
||||
__array(u32, header, ASYNC_HEADER_QUADLET_COUNT)
|
||||
|
@ -47,6 +48,7 @@ DECLARE_EVENT_CLASS(async_outbound_initiate_template,
|
|||
),
|
||||
TP_fast_assign(
|
||||
__entry->transaction = transaction;
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->scode = scode;
|
||||
memcpy(__entry->header, header, QUADLET_SIZE * ASYNC_HEADER_QUADLET_COUNT);
|
||||
|
@ -54,8 +56,9 @@ DECLARE_EVENT_CLASS(async_outbound_initiate_template,
|
|||
),
|
||||
// This format is for the request subaction.
|
||||
TP_printk(
|
||||
"transaction=0x%llx generation=%u scode=%u dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x offset=0x%012llx header=%s data=%s",
|
||||
"transaction=0x%llx card_index=%u generation=%u scode=%u dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x offset=0x%012llx header=%s data=%s",
|
||||
__entry->transaction,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->scode,
|
||||
ASYNC_HEADER_GET_DESTINATION(__entry->header),
|
||||
|
@ -71,10 +74,11 @@ DECLARE_EVENT_CLASS(async_outbound_initiate_template,
|
|||
|
||||
// The value of status is one of ack codes and rcodes specific to Linux FireWire subsystem.
|
||||
DECLARE_EVENT_CLASS(async_outbound_complete_template,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(transaction, generation, scode, status, timestamp),
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(transaction, card_index, generation, scode, status, timestamp),
|
||||
TP_STRUCT__entry(
|
||||
__field(u64, transaction)
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u8, scode)
|
||||
__field(u8, status)
|
||||
|
@ -82,14 +86,16 @@ DECLARE_EVENT_CLASS(async_outbound_complete_template,
|
|||
),
|
||||
TP_fast_assign(
|
||||
__entry->transaction = transaction;
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->scode = scode;
|
||||
__entry->status = status;
|
||||
__entry->timestamp = timestamp;
|
||||
),
|
||||
TP_printk(
|
||||
"transaction=0x%llx generation=%u scode=%u status=%u timestamp=0x%04x",
|
||||
"transaction=0x%llx card_index=%u generation=%u scode=%u status=%u timestamp=0x%04x",
|
||||
__entry->transaction,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->scode,
|
||||
__entry->status,
|
||||
|
@ -99,10 +105,11 @@ DECLARE_EVENT_CLASS(async_outbound_complete_template,
|
|||
|
||||
// The value of status is one of ack codes and rcodes specific to Linux FireWire subsystem.
|
||||
DECLARE_EVENT_CLASS(async_inbound_template,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, generation, scode, status, timestamp, header, data, data_count),
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, card_index, generation, scode, status, timestamp, header, data, data_count),
|
||||
TP_STRUCT__entry(
|
||||
__field(u64, transaction)
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u8, scode)
|
||||
__field(u8, status)
|
||||
|
@ -112,6 +119,7 @@ DECLARE_EVENT_CLASS(async_inbound_template,
|
|||
),
|
||||
TP_fast_assign(
|
||||
__entry->transaction = transaction;
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->scode = scode;
|
||||
__entry->status = status;
|
||||
|
@ -121,8 +129,9 @@ DECLARE_EVENT_CLASS(async_inbound_template,
|
|||
),
|
||||
// This format is for the response subaction.
|
||||
TP_printk(
|
||||
"transaction=0x%llx generation=%u scode=%u status=%u timestamp=0x%04x dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x rcode=%u header=%s data=%s",
|
||||
"transaction=0x%llx card_index=%u generation=%u scode=%u status=%u timestamp=0x%04x dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x rcode=%u header=%s data=%s",
|
||||
__entry->transaction,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->scode,
|
||||
__entry->status,
|
||||
|
@ -139,26 +148,27 @@ DECLARE_EVENT_CLASS(async_inbound_template,
|
|||
);
|
||||
|
||||
DEFINE_EVENT(async_outbound_initiate_template, async_request_outbound_initiate,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, generation, scode, header, data, data_count)
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, card_index, generation, scode, header, data, data_count)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(async_outbound_complete_template, async_request_outbound_complete,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(transaction, generation, scode, status, timestamp)
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(transaction, card_index, generation, scode, status, timestamp)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(async_inbound_template, async_response_inbound,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, generation, scode, status, timestamp, header, data, data_count)
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, card_index, generation, scode, status, timestamp, header, data, data_count)
|
||||
);
|
||||
|
||||
DEFINE_EVENT_PRINT(async_inbound_template, async_request_inbound,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, generation, scode, status, timestamp, header, data, data_count),
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, card_index, generation, scode, status, timestamp, header, data, data_count),
|
||||
TP_printk(
|
||||
"transaction=0x%llx generation=%u scode=%u status=%u timestamp=0x%04x dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x offset=0x%012llx header=%s data=%s",
|
||||
"transaction=0x%llx card_index=%u generation=%u scode=%u status=%u timestamp=0x%04x dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x offset=0x%012llx header=%s data=%s",
|
||||
__entry->transaction,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->scode,
|
||||
__entry->status,
|
||||
|
@ -175,11 +185,12 @@ DEFINE_EVENT_PRINT(async_inbound_template, async_request_inbound,
|
|||
);
|
||||
|
||||
DEFINE_EVENT_PRINT(async_outbound_initiate_template, async_response_outbound_initiate,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, generation, scode, header, data, data_count),
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, const u32 *header, const u32 *data, unsigned int data_count),
|
||||
TP_ARGS(transaction, card_index, generation, scode, header, data, data_count),
|
||||
TP_printk(
|
||||
"transaction=0x%llx generation=%u scode=%u dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x rcode=%u header=%s data=%s",
|
||||
"transaction=0x%llx card_index=%u generation=%u scode=%u dst_id=0x%04x tlabel=%u tcode=%u src_id=0x%04x rcode=%u header=%s data=%s",
|
||||
__entry->transaction,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->scode,
|
||||
ASYNC_HEADER_GET_DESTINATION(__entry->header),
|
||||
|
@ -194,8 +205,8 @@ DEFINE_EVENT_PRINT(async_outbound_initiate_template, async_response_outbound_ini
|
|||
);
|
||||
|
||||
DEFINE_EVENT(async_outbound_complete_template, async_response_outbound_complete,
|
||||
TP_PROTO(u64 transaction, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(transaction, generation, scode, status, timestamp)
|
||||
TP_PROTO(u64 transaction, unsigned int card_index, unsigned int generation, unsigned int scode, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(transaction, card_index, generation, scode, status, timestamp)
|
||||
);
|
||||
|
||||
#undef ASYNC_HEADER_GET_DESTINATION
|
||||
|
@ -206,23 +217,26 @@ DEFINE_EVENT(async_outbound_complete_template, async_response_outbound_complete,
|
|||
#undef ASYNC_HEADER_GET_RCODE
|
||||
|
||||
TRACE_EVENT(async_phy_outbound_initiate,
|
||||
TP_PROTO(u64 packet, unsigned int generation, u32 first_quadlet, u32 second_quadlet),
|
||||
TP_ARGS(packet, generation, first_quadlet, second_quadlet),
|
||||
TP_PROTO(u64 packet, unsigned int card_index, unsigned int generation, u32 first_quadlet, u32 second_quadlet),
|
||||
TP_ARGS(packet, card_index, generation, first_quadlet, second_quadlet),
|
||||
TP_STRUCT__entry(
|
||||
__field(u64, packet)
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u32, first_quadlet)
|
||||
__field(u32, second_quadlet)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->packet = packet;
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->first_quadlet = first_quadlet;
|
||||
__entry->second_quadlet = second_quadlet
|
||||
),
|
||||
TP_printk(
|
||||
"packet=0x%llx generation=%u first_quadlet=0x%08x second_quadlet=0x%08x",
|
||||
"packet=0x%llx card_index=%u generation=%u first_quadlet=0x%08x second_quadlet=0x%08x",
|
||||
__entry->packet,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->first_quadlet,
|
||||
__entry->second_quadlet
|
||||
|
@ -230,23 +244,26 @@ TRACE_EVENT(async_phy_outbound_initiate,
|
|||
);
|
||||
|
||||
TRACE_EVENT(async_phy_outbound_complete,
|
||||
TP_PROTO(u64 packet, unsigned int generation, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(packet, generation, status, timestamp),
|
||||
TP_PROTO(u64 packet, unsigned int card_index, unsigned int generation, unsigned int status, unsigned int timestamp),
|
||||
TP_ARGS(packet, card_index, generation, status, timestamp),
|
||||
TP_STRUCT__entry(
|
||||
__field(u64, packet)
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u8, status)
|
||||
__field(u16, timestamp)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->packet = packet;
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->status = status;
|
||||
__entry->timestamp = timestamp;
|
||||
),
|
||||
TP_printk(
|
||||
"packet=0x%llx generation=%u status=%u timestamp=0x%04x",
|
||||
"packet=0x%llx card_index=%u generation=%u status=%u timestamp=0x%04x",
|
||||
__entry->packet,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->status,
|
||||
__entry->timestamp
|
||||
|
@ -254,10 +271,11 @@ TRACE_EVENT(async_phy_outbound_complete,
|
|||
);
|
||||
|
||||
TRACE_EVENT(async_phy_inbound,
|
||||
TP_PROTO(u64 packet, unsigned int generation, unsigned int status, unsigned int timestamp, u32 first_quadlet, u32 second_quadlet),
|
||||
TP_ARGS(packet, generation, status, timestamp, first_quadlet, second_quadlet),
|
||||
TP_PROTO(u64 packet, unsigned int card_index, unsigned int generation, unsigned int status, unsigned int timestamp, u32 first_quadlet, u32 second_quadlet),
|
||||
TP_ARGS(packet, card_index, generation, status, timestamp, first_quadlet, second_quadlet),
|
||||
TP_STRUCT__entry(
|
||||
__field(u64, packet)
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u8, status)
|
||||
__field(u16, timestamp)
|
||||
|
@ -273,8 +291,9 @@ TRACE_EVENT(async_phy_inbound,
|
|||
__entry->second_quadlet = second_quadlet
|
||||
),
|
||||
TP_printk(
|
||||
"packet=0x%llx generation=%u status=%u timestamp=0x%04x first_quadlet=0x%08x second_quadlet=0x%08x",
|
||||
"packet=0x%llx card_index=%u generation=%u status=%u timestamp=0x%04x first_quadlet=0x%08x second_quadlet=0x%08x",
|
||||
__entry->packet,
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->status,
|
||||
__entry->timestamp,
|
||||
|
@ -284,55 +303,61 @@ TRACE_EVENT(async_phy_inbound,
|
|||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(bus_reset_arrange_template,
|
||||
TP_PROTO(unsigned int generation, bool short_reset),
|
||||
TP_ARGS(generation, short_reset),
|
||||
TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset),
|
||||
TP_ARGS(card_index, generation, short_reset),
|
||||
TP_STRUCT__entry(
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(bool, short_reset)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->short_reset = short_reset;
|
||||
),
|
||||
TP_printk(
|
||||
"generation=%u short_reset=%s",
|
||||
"card_index=%u generation=%u short_reset=%s",
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->short_reset ? "true" : "false"
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(bus_reset_arrange_template, bus_reset_initiate,
|
||||
TP_PROTO(unsigned int generation, bool short_reset),
|
||||
TP_ARGS(generation, short_reset)
|
||||
TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset),
|
||||
TP_ARGS(card_index, generation, short_reset)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(bus_reset_arrange_template, bus_reset_schedule,
|
||||
TP_PROTO(unsigned int generation, bool short_reset),
|
||||
TP_ARGS(generation, short_reset)
|
||||
TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset),
|
||||
TP_ARGS(card_index, generation, short_reset)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(bus_reset_arrange_template, bus_reset_postpone,
|
||||
TP_PROTO(unsigned int generation, bool short_reset),
|
||||
TP_ARGS(generation, short_reset)
|
||||
TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset),
|
||||
TP_ARGS(card_index, generation, short_reset)
|
||||
);
|
||||
|
||||
TRACE_EVENT(bus_reset_handle,
|
||||
TP_PROTO(unsigned int generation, unsigned int node_id, bool bm_abdicate, u32 *self_ids, unsigned int self_id_count),
|
||||
TP_ARGS(generation, node_id, bm_abdicate, self_ids, self_id_count),
|
||||
TP_PROTO(unsigned int card_index, unsigned int generation, unsigned int node_id, bool bm_abdicate, u32 *self_ids, unsigned int self_id_count),
|
||||
TP_ARGS(card_index, generation, node_id, bm_abdicate, self_ids, self_id_count),
|
||||
TP_STRUCT__entry(
|
||||
__field(u8, card_index)
|
||||
__field(u8, generation)
|
||||
__field(u8, node_id)
|
||||
__field(bool, bm_abdicate)
|
||||
__dynamic_array(u32, self_ids, self_id_count)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->card_index = card_index;
|
||||
__entry->generation = generation;
|
||||
__entry->node_id = node_id;
|
||||
__entry->bm_abdicate = bm_abdicate;
|
||||
memcpy(__get_dynamic_array(self_ids), self_ids, __get_dynamic_array_len(self_ids));
|
||||
),
|
||||
TP_printk(
|
||||
"generation=%u node_id=0x%04x bm_abdicate=%s self_ids=%s",
|
||||
"card_index=%u generation=%u node_id=0x%04x bm_abdicate=%s self_ids=%s",
|
||||
__entry->card_index,
|
||||
__entry->generation,
|
||||
__entry->node_id,
|
||||
__entry->bm_abdicate ? "true" : "false",
|
||||
|
|
Loading…
Reference in New Issue