diff options
| author | Josh Hunt <johunt@akamai.com> | 2016-03-08 10:52:11 -0500 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-03-10 18:13:25 -0500 |
| commit | e56c92565dfe2c8de203f42f7d5237d14784b93d (patch) | |
| tree | f93e643da2d55c54b32410ecf9d589f8a87a8619 | |
| parent | f6cede5b49e822ebc41a099fe41ab4989f64e2cb (diff) | |
ACPI / APEI: Fix leaked resources
We leak the NVS and arch resources (if used), in apei_resources_request.
They are allocated to make sure we exclude them from the APEI resources,
but they are never freed at the end of the function. Free them now.
Signed-off-by: Josh Hunt <johunt@akamai.com>
Reviewed-by: Chen, Gong <gong.chen@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
| -rw-r--r-- | drivers/acpi/apei/apei-base.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c index a2c8d7adb6eb..da370e1d31f4 100644 --- a/drivers/acpi/apei/apei-base.c +++ b/drivers/acpi/apei/apei-base.c | |||
| @@ -536,7 +536,8 @@ int apei_resources_request(struct apei_resources *resources, | |||
| 536 | goto err_unmap_ioport; | 536 | goto err_unmap_ioport; |
| 537 | } | 537 | } |
| 538 | 538 | ||
| 539 | return 0; | 539 | goto arch_res_fini; |
| 540 | |||
| 540 | err_unmap_ioport: | 541 | err_unmap_ioport: |
| 541 | list_for_each_entry(res, &resources->ioport, list) { | 542 | list_for_each_entry(res, &resources->ioport, list) { |
| 542 | if (res == res_bak) | 543 | if (res == res_bak) |
| @@ -551,7 +552,8 @@ err_unmap_iomem: | |||
| 551 | release_mem_region(res->start, res->end - res->start); | 552 | release_mem_region(res->start, res->end - res->start); |
| 552 | } | 553 | } |
| 553 | arch_res_fini: | 554 | arch_res_fini: |
| 554 | apei_resources_fini(&arch_res); | 555 | if (arch_apei_filter_addr) |
| 556 | apei_resources_fini(&arch_res); | ||
| 555 | nvs_res_fini: | 557 | nvs_res_fini: |
| 556 | apei_resources_fini(&nvs_resources); | 558 | apei_resources_fini(&nvs_resources); |
| 557 | return rc; | 559 | return rc; |
