From c0bdb8dd7a4802d20ef94b2de049b46e4070c6ac Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Wed, 4 May 2022 10:45:18 +0100 Subject: [PATCH] flashrom: Only set the BIOS size if not already quirked --- plugins/flashrom/fu-plugin-flashrom.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/flashrom/fu-plugin-flashrom.c b/plugins/flashrom/fu-plugin-flashrom.c index d65222fa5..6997c6194 100644 --- a/plugins/flashrom/fu-plugin-flashrom.c +++ b/plugins/flashrom/fu-plugin-flashrom.c @@ -113,7 +113,6 @@ fu_plugin_flashrom_device_set_bios_info(FuPlugin *plugin, FuDevice *device) const guint8 *buf; gsize bufsz; guint32 bios_char = 0x0; - guint8 bios_sz = 0x0; g_autoptr(GBytes) bios_table = NULL; /* get SMBIOS info */ @@ -121,11 +120,14 @@ fu_plugin_flashrom_device_set_bios_info(FuPlugin *plugin, FuDevice *device) if (bios_table == NULL) return; - /* ROM size */ + /* ROM size if not already been quirked */ buf = g_bytes_get_data(bios_table, &bufsz); - if (fu_common_read_uint8_safe(buf, bufsz, 0x9, &bios_sz, NULL)) { - guint64 firmware_size = (bios_sz + 1) * 64 * 1024; - fu_device_set_firmware_size_max(device, firmware_size); + if (fu_device_get_firmware_size_max(device) == 0) { + guint8 bios_sz = 0x0; + if (fu_common_read_uint8_safe(buf, bufsz, 0x9, &bios_sz, NULL)) { + guint64 firmware_size = (bios_sz + 1) * 64 * 1024; + fu_device_set_firmware_size_max(device, firmware_size); + } } /* BIOS characteristics */