qemu/seabios-fix-memory-leak-when-pci-check.patch
jiangdongxu c1319f569f backport seabios bugfix patches
seabios-convert-value-of-be16_to_cpu-to-u64-before-s.patch:
be16_to_cpu(scsi_lun->lun[i]) is 16 bits and left shifting by more than 16
will have undefined behaviour. convert it to u64 before shifting.

seabios-do-not-give-back-high-ram.patch:
fix bug of Oracle 6 and 7 series virtual machines using the high ram returned by
sebios.

seabios-drop-yield-in-smp_setup.patch:
Fix SeaBIOS stuck problem becuase SeaBIOS open hardware interrupt
by invoking yield(). That's dangerous and unnecessary. Let's drop
it, and make the processing of setup smp more security in SeaBIOS.

seabios-fix-memory-leak-when-pci-check.patch:
fix code memory leak when pci check failed
free busses memory when pci_bios_check_devices function returns error in pci_setup()

seabios-increase-the-seabios-high-mem-zone-size.patch:
In terms of version and specification, under the maximum configuration
specification of the number of vcpus, virtio blocks and other features,
there exists bottleneck in seabios high_mem_zone, which results in the
memory application failure and causes the vm to fail to start.
Increase BUILD_MAX_HIGHTABLE to 512k.

seabios-increase-the-seabios-minibiostable.patch:
Increase the BUILD_MIN_BIOSTABLE to 4096;
support 25 virtio-blk(data) + 1 virtio-scsi(sys) + 1 virtio-net
Increase the BUILD_MIN_BIOSTABLE to 5120;
support 18 virtio-scsi while vm starts with IDE boot disk

Signed-off-by: jiangdongxu <jiangdongxu1@huawei.com>
2022-03-19 14:42:31 +08:00

35 lines
1.1 KiB
Diff

From 73cb83af0649f958bb31b5b76f46c164c6f2952c Mon Sep 17 00:00:00 2001
From: jiangdongxu <jiangdongxu1@huawei.com>
Date: Fri, 11 Feb 2022 16:28:55 +0800
Subject: [PATCH 3/6] seabios: fix memory leak when pci check
fix code memory leak when pci check failed
free busses memory when pci_bios_check_devices function returns error in pci_setup()
Signed-off-by: liuxiangodng <liuxiangdong5@huawei.com>
Signed-off-by: jiangdongxu <jiangdongxu1@huawei.com>
---
roms/seabios/src/fw/pciinit.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/roms/seabios/src/fw/pciinit.c b/roms/seabios/src/fw/pciinit.c
index d25931bb05..9df35d05d1 100644
--- a/roms/seabios/src/fw/pciinit.c
+++ b/roms/seabios/src/fw/pciinit.c
@@ -1171,8 +1171,11 @@ pci_setup(void)
return;
}
memset(busses, 0, sizeof(*busses) * (MaxPCIBus + 1));
- if (pci_bios_check_devices(busses))
+ if (pci_bios_check_devices(busses)) {
+ dprintf(1, "pci_bios_check_devices(busses) failed!\n");
+ free(busses);
return;
+ }
dprintf(1, "=== PCI new allocation pass #2 ===\n");
pci_bios_map_devices(busses);
--
2.27.0