|
@@ -298,30 +298,44 @@ TRACE_EVENT(non_standard_event,
|
|
|
TRACE_EVENT(aer_event,
|
|
|
TP_PROTO(const char *dev_name,
|
|
|
const u32 status,
|
|
|
- const u8 severity),
|
|
|
+ const u8 severity,
|
|
|
+ const u8 tlp_header_valid,
|
|
|
+ struct aer_header_log_regs *tlp),
|
|
|
|
|
|
- TP_ARGS(dev_name, status, severity),
|
|
|
+ TP_ARGS(dev_name, status, severity, tlp_header_valid, tlp),
|
|
|
|
|
|
TP_STRUCT__entry(
|
|
|
__string( dev_name, dev_name )
|
|
|
__field( u32, status )
|
|
|
__field( u8, severity )
|
|
|
+ __field( u8, tlp_header_valid)
|
|
|
+ __array( u32, tlp_header, 4 )
|
|
|
),
|
|
|
|
|
|
TP_fast_assign(
|
|
|
__assign_str(dev_name, dev_name);
|
|
|
__entry->status = status;
|
|
|
__entry->severity = severity;
|
|
|
+ __entry->tlp_header_valid = tlp_header_valid;
|
|
|
+ if (tlp_header_valid) {
|
|
|
+ __entry->tlp_header[0] = tlp->dw0;
|
|
|
+ __entry->tlp_header[1] = tlp->dw1;
|
|
|
+ __entry->tlp_header[2] = tlp->dw2;
|
|
|
+ __entry->tlp_header[3] = tlp->dw3;
|
|
|
+ }
|
|
|
),
|
|
|
|
|
|
- TP_printk("%s PCIe Bus Error: severity=%s, %s\n",
|
|
|
+ TP_printk("%s PCIe Bus Error: severity=%s, %s, TLP Header=%s\n",
|
|
|
__get_str(dev_name),
|
|
|
__entry->severity == AER_CORRECTABLE ? "Corrected" :
|
|
|
__entry->severity == AER_FATAL ?
|
|
|
"Fatal" : "Uncorrected, non-fatal",
|
|
|
__entry->severity == AER_CORRECTABLE ?
|
|
|
__print_flags(__entry->status, "|", aer_correctable_errors) :
|
|
|
- __print_flags(__entry->status, "|", aer_uncorrectable_errors))
|
|
|
+ __print_flags(__entry->status, "|", aer_uncorrectable_errors),
|
|
|
+ __entry->tlp_header_valid ?
|
|
|
+ __print_array(__entry->tlp_header, 4, 4) :
|
|
|
+ "Not available")
|
|
|
);
|
|
|
|
|
|
/*
|