ev.psci_state = val;
trace_seq_printf(s, " psci_state: %d", ev.psci_state);
- // Upstream kKernels up to version 6.10 don't decode UEFI 2.6+ N.17 table
+ /* Upstream Kernels up to version 6.10 don't decode UEFI 2.6+ N.17 table */
if (tep_get_field_val(s, event, "pei_len", record, &val, 1) >= 0) {
+ bool legacy_patch = false;
+
ev.pei_len = val;
trace_seq_printf(s, " ARM Processor Err Info data len: %d\n",
ev.pei_len);
- ev.pei_error = tep_get_field_raw(s, event, "buf", record, &len, 1);
- if (!ev.pei_error)
- return -1;
+ ev.pei_error = tep_get_field_raw(s, event, "pei_buf", record, &len, 1);
+ if (!ev.pei_error) {
+ /* Keep support for OOT CPER N.16/N.17 full table patch */
+ ev.pei_error = tep_get_field_raw(s, event, "buf", record, &len, 1);
+ if (!ev.pei_error)
+ return -1;
+ legacy_patch = true;
+ }
display_raw_data(s, ev.pei_error, ev.pei_len);
if (tep_get_field_val(s, event, "ctx_len", record, &val, 1) < 0)
trace_seq_printf(s, " ARM Processor Err Context Info data len: %d\n",
ev.ctx_len);
- ev.ctx_error = tep_get_field_raw(s, event, "buf1", record, &len, 1);
+ if (!legacy_patch)
+ ev.ctx_error = tep_get_field_raw(s, event, "ctx_buf", record, &len, 1);
+ else
+ ev.ctx_error = tep_get_field_raw(s, event, "buf1", record, &len, 1);
if (!ev.ctx_error)
return -1;
display_raw_data(s, ev.ctx_error, ev.ctx_len);
trace_seq_printf(s, " Vendor Specific Err Info data len: %d\n",
ev.oem_len);
- ev.vsei_error = tep_get_field_raw(s, event, "buf2", record, &len, 1);
+ if (!legacy_patch)
+ ev.vsei_error = tep_get_field_raw(s, event, "oem_buf", record, &len, 1);
+ else
+ ev.vsei_error = tep_get_field_raw(s, event, "buf2", record, &len, 1);
if (!ev.vsei_error)
return -1;