]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - include/ras/ras_event.h
ras: acpi / apei: generate trace event for unrecognized CPER section
[mirror_ubuntu-zesty-kernel.git] / include / ras / ras_event.h
index 1791a12cfa85e9875a8972826c01085d916a751e..4f79ba94fa6bd69ce3d229e9823f73f4d73f4b1f 100644 (file)
@@ -161,6 +161,51 @@ TRACE_EVENT(mc_event,
                  __get_str(driver_detail))
 );
 
+/*
+ * Non-Standard Section Report
+ *
+ * This event is generated when hardware detected a hardware
+ * error event, which may be of non-standard section as defined
+ * in UEFI spec appendix "Common Platform Error Record", or may
+ * be of sections for which TRACE_EVENT is not defined.
+ *
+ */
+TRACE_EVENT(non_standard_event,
+
+       TP_PROTO(const uuid_le *sec_type,
+                const uuid_le *fru_id,
+                const char *fru_text,
+                const u8 sev,
+                const u8 *err,
+                const u32 len),
+
+       TP_ARGS(sec_type, fru_id, fru_text, sev, err, len),
+
+       TP_STRUCT__entry(
+               __array(char, sec_type, UUID_SIZE)
+               __array(char, fru_id, UUID_SIZE)
+               __string(fru_text, fru_text)
+               __field(u8, sev)
+               __field(u32, len)
+               __dynamic_array(u8, buf, len)
+       ),
+
+       TP_fast_assign(
+               memcpy(__entry->sec_type, sec_type, UUID_SIZE);
+               memcpy(__entry->fru_id, fru_id, UUID_SIZE);
+               __assign_str(fru_text, fru_text);
+               __entry->sev = sev;
+               __entry->len = len;
+               memcpy(__get_dynamic_array(buf), err, len);
+       ),
+
+       TP_printk("severity: %d; sec type:%pU; FRU: %pU %s; data len:%d; raw data:%s",
+                 __entry->sev, __entry->sec_type,
+                 __entry->fru_id, __get_str(fru_text),
+                 __entry->len,
+                 __print_hex(__get_dynamic_array(buf), __entry->len))
+);
+
 /*
  * PCIe AER Trace event
  *