coreboot-kgpe-d16/src/southbridge
Jacob Garber 293e6a96a9 nb/amd/pi,sb/amd/sr5650: Remove unnecessary allocation
add_ivrs_device_entries() is a recursive function, and each recursive
call is passed a pointer to a root_level variable declared outside the
function. In an attempt to make the function self-contained, the initial
call is made with the root_level pointer set to NULL, and then the
function attempts to detect this and allocate a root_level variable for
the rest of the calls. This makes memory management very tricky - for
example, the pi code incorrectly attempts to free the root_level
variable at the end of *each* recursive call, which only avoids being a
double-free because free() in coreboot is currently a no-op. Let's
keep life simple and declare root_level as a local variable outside the
first function call instead.

Change-Id: Ifd63ee368fb89345b9b42ccb86cebcca64f32ac8
Signed-off-by: Jacob Garber <jgarber1@ualberta.ca>
Found-by: Coverity CID 1362811
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34387
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2019-08-20 15:30:47 +00:00
..
amd nb/amd/pi,sb/amd/sr5650: Remove unnecessary allocation 2019-08-20 15:30:47 +00:00
broadcom src: Add missing include <device/pci_ops.h> 2019-07-12 17:10:56 +00:00
intel src: Remove variable length arrays 2019-08-20 15:27:42 +00:00
nvidia src: Add missing include <device/pci_ops.h> 2019-07-12 17:10:56 +00:00
ricoh/rl5c476 {northbridge, soc, southbridge}/intel: Make use of generic set_subsystem() 2019-03-21 16:19:34 +00:00
ti {northbridge, soc, southbridge}/intel: Make use of generic set_subsystem() 2019-03-21 16:19:34 +00:00
via/common sb/via/common: Fix indirect includes 2019-03-15 05:02:35 +00:00