Hi Rafael, Today's linux-next merge of the pm tree got a conflict in drivers/acpi/acpi_extlog.c between commits 2dfb7d51a61d ("trace, RAS: Add eMCA trace event interface") and d6cae935ec5b ("trace, eMCA: Add a knob to adjust where to save event log") from the ia64 tree and commit 0a00fd5e20fd ("ACPICA: Restore error table definitions to reduce code differences between Linux and ACPICA upstream") from the pm tree. I fixed it up (hopefully - see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc drivers/acpi/acpi_extlog.c index 0ad6f389d922,340d09518f8e..000000000000 --- a/drivers/acpi/acpi_extlog.c +++ b/drivers/acpi/acpi_extlog.c @@@ -139,12 -137,8 +139,12 @@@ static int extlog_print(struct notifier struct mce *mce = (struct mce *)data; int bank = mce->bank; int cpu = mce->extcpu; - struct acpi_generic_status *estatus, *tmp; - struct acpi_generic_data *gdata; - struct acpi_hest_generic_status *estatus; - int rc; ++ struct acpi_hest_generic_status *estatus, *tmp; ++ struct acpi_hest_generic_data *gdata; + const uuid_le *fru_id = &NULL_UUID_LE; + char *fru_text = ""; + uuid_le *sec_type; + static u32 err_seq; estatus = extlog_elog_entry_check(cpu, bank); if (estatus == NULL) @@@ -154,29 -148,8 +154,29 @@@ /* clear record status to enable BIOS to update it again */ estatus->block_status = 0; - tmp = (struct acpi_generic_status *)elog_buf; - rc = print_extlog_rcd(NULL, (struct acpi_hest_generic_status *)elog_buf, cpu); ++ tmp = (struct acpi_hest_generic_status *)elog_buf; + + if (!ras_userspace_consumers()) { + print_extlog_rcd(NULL, tmp, cpu); + goto out; + } + + /* log event via trace */ + err_seq++; - gdata = (struct acpi_generic_data *)(tmp + 1); ++ gdata = (struct acpi_hest_generic_data *)(tmp + 1); + if (gdata->validation_bits & CPER_SEC_VALID_FRU_ID) + fru_id = (uuid_le *)gdata->fru_id; + if (gdata->validation_bits & CPER_SEC_VALID_FRU_TEXT) + fru_text = gdata->fru_text; + sec_type = (uuid_le *)gdata->section_type; + if (!uuid_le_cmp(*sec_type, CPER_SEC_PLATFORM_MEM)) { + struct cper_sec_mem_err *mem = (void *)(gdata + 1); + if (gdata->error_data_length >= sizeof(*mem)) + trace_extlog_mem_event(mem, err_seq, fru_id, fru_text, + (u8)gdata->error_severity); + } +out: return NOTIFY_STOP; }
Attachment:
signature.asc
Description: PGP signature