> On 27-Feb-2024, at 21:17, Igor Mammedov <imamm...@redhat.com> wrote:
>
> smbios_get_tables() bails out right away if leagacy mode is enabled
> and won't generate any SMBIOS tables. At the same time x86 specific
> fw_cfg_build_smbios() will genarate legacy tables and then proceed
> to preparing temporary mem_array for useless call to
> smbios_get_tables() and then discard it.
>
> Drop legacy related check in smbios_get_tables() and return from
> fw_cfg_build_smbios() early if legacy tables where built without
> proceeding to non legacy part of the function.
>
> Signed-off-by: Igor Mammedov <imamm...@redhat.com>
Reviewed-by: Ani Sinha <anisi...@redhat.com>
> ---
> hw/i386/fw_cfg.c | 1 +
> hw/smbios/smbios.c | 6 ------
> 2 files changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c
> index 98a478c276..a635234e68 100644
> --- a/hw/i386/fw_cfg.c
> +++ b/hw/i386/fw_cfg.c
> @@ -74,6 +74,7 @@ void fw_cfg_build_smbios(PCMachineState *pcms, FWCfgState
> *fw_cfg)
> if (smbios_tables) {
> fw_cfg_add_bytes(fw_cfg, FW_CFG_SMBIOS_ENTRIES,
> smbios_tables, smbios_tables_len);
> + return;
> }
>
> /* build the array of physical mem area from e820 table */
> diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
> index a3c4e52ce9..8e86c62184 100644
> --- a/hw/smbios/smbios.c
> +++ b/hw/smbios/smbios.c
> @@ -1106,12 +1106,6 @@ void smbios_get_tables(MachineState *ms,
> {
> unsigned i, dimm_cnt, offset;
>
> - if (smbios_legacy) {
> - *tables = *anchor = NULL;
> - *tables_len = *anchor_len = 0;
> - return;
> - }
> -
> if (!smbios_immutable) {
> smbios_build_type_0_table();
> smbios_build_type_1_table();
> --
> 2.39.3
>