[Skiboot] [PATCH] core/pci: Fix mem-leak on fast-reboot
Stewart Smith
stewart at linux.vnet.ibm.com
Thu Jul 20 17:39:31 AEST 2017
Andrew Donnellan <andrew.donnellan at au1.ibm.com> writes:
> On 20/07/17 16:52, Matt Brown wrote:
>> Fast-reboot has a memory leak which causes the system to crash after about
>> 250 fast-reboots. The patch fixes the memory leak.
>> The cause of the leak was the pci_device's being freed, without freeing
>> the pci_slot within it.
>>
>> Signed-off-by: Matt Brown <matthew.brown.dev at gmail.com>
>> ---
>> core/pci.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/core/pci.c b/core/pci.c
>> index cc18db1..c1084b5 100644
>> --- a/core/pci.c
>> +++ b/core/pci.c
>> @@ -1640,6 +1640,7 @@ static void __pci_reset(struct list_head *list)
>> while ((pd = list_pop(list, struct pci_device, link)) != NULL) {
>> __pci_reset(&pd->children);
>> dt_free(pd->dn);
>> + free(pd->slot);
>
> The other place in pci.c that calls free(pd->slot) null-checks it first,
> is it guaranteed that we'll have pd->slot here?
mem_free() (implementation of skiboot free()) does the null check for
us, so it's fine.
--
Stewart Smith
OPAL Architect, IBM.
More information about the Skiboot
mailing list