hv: fixup: a minor refine about tpm2_fixup

Check the return value of get_mod_by_tag before use it.

Tracked-On: #6380
Signed-off-by: Fei Li <fei1.li@intel.com>
This commit is contained in:
Fei Li 2021-08-11 13:43:58 +08:00 committed by wenlingz
parent e5aa63b08e
commit 7dd877f8eb

View File

@ -39,7 +39,7 @@ static void tpm2_fixup(uint16_t vm_id)
struct abi_module *mod; struct abi_module *mod;
mod = get_mod_by_tag(abi, config->acpi_config.acpi_mod_tag); mod = get_mod_by_tag(abi, config->acpi_config.acpi_mod_tag);
if (mod != NULL) {
tpm2 = get_acpi_mod_entry(ACPI_SIG_TPM2, mod->start); tpm2 = get_acpi_mod_entry(ACPI_SIG_TPM2, mod->start);
native = get_acpi_tbl(ACPI_SIG_TPM2); native = get_acpi_tbl(ACPI_SIG_TPM2);
@ -52,7 +52,8 @@ static void tpm2_fixup(uint16_t vm_id)
if (native->header.length == if (native->header.length ==
sizeof(struct acpi_table_tpm2)) { sizeof(struct acpi_table_tpm2)) {
need_fix |= tpm2->header.length == 0x34U; need_fix |= tpm2->header.length == 0x34U;
need_fix |= strncmp((char *)tpm2->start_method_spec_para, (char *)native->start_method_spec_para, need_fix |= strncmp((char *)tpm2->start_method_spec_para,
(char *)native->start_method_spec_para,
sizeof(tpm2->start_method_spec_para)) != 0; sizeof(tpm2->start_method_spec_para)) != 0;
need_fix |= tpm2->laml != native->laml; need_fix |= tpm2->laml != native->laml;
need_fix |= tpm2->lasa != native->lasa; need_fix |= tpm2->lasa != native->lasa;
@ -63,8 +64,10 @@ static void tpm2_fixup(uint16_t vm_id)
tpm2->start_method = native->start_method; tpm2->start_method = native->start_method;
tpm2->header.length = native->header.length; tpm2->header.length = native->header.length;
tpm2->header.revision = native->header.revision; tpm2->header.revision = native->header.revision;
memcpy_s(&native->start_method_spec_para, sizeof(native->start_method_spec_para), memcpy_s(&tpm2->start_method_spec_para,
&tpm2->start_method_spec_para, sizeof(native->start_method_spec_para)); sizeof(native->start_method_spec_para),
&native->start_method_spec_para,
sizeof(native->start_method_spec_para));
tpm2->laml = native->laml; tpm2->laml = native->laml;
tpm2->lasa = config->mmiodevs[0].mmiores[1].base_gpa; tpm2->lasa = config->mmiodevs[0].mmiores[1].base_gpa;
@ -80,6 +83,7 @@ static void tpm2_fixup(uint16_t vm_id)
} }
} }
} }
}
void acrn_vm_fixup(uint16_t vm_id) void acrn_vm_fixup(uint16_t vm_id)
{ {