RE: [PATCH] acpi/apei: free lists of resources in einj and erst

From: Luck, Tony
Date: Fri Jul 10 2015 - 14:14:32 EST


--- a/drivers/acpi/apei/einj.c
+++ b/drivers/acpi/apei/einj.c
@@ -379,10 +379,9 @@ static int __einj_error_trigger(u64 trigger_paddr, u32 type,
rc = apei_resources_add(&addr_resources,
trigger_param_region->address,
trigger_param_region->bit_width/8, true);
- if (rc)
- goto out_fini;
- rc = apei_resources_sub(&trigger_resources,
- &addr_resources);
+ if (!rc)
+ rc = apei_resources_sub(&trigger_resources,
+ &addr_resources);
}
apei_resources_fini(&addr_resources);
if (rc)

This bit looks wrong ... the line right after the this diff ends is
goto out_fini;

so we'll call apei_resources_fini() twice in the rc!=0 case.

-Tony