Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp64426ybp; Thu, 3 Oct 2019 10:13:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqzxuLIRO5NRb1qkwjIZ1DUidT+TbAqfhfWf8nztKp8xiDoslUi/tzhlcO3B31ULGE+0PVbF X-Received: by 2002:a05:6402:346:: with SMTP id r6mr10519288edw.124.1570122810777; Thu, 03 Oct 2019 10:13:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570122810; cv=none; d=google.com; s=arc-20160816; b=IyOJehMXmTNOqlBTBOciDaBjNC69me5UBwu8/MpPRN5kwh7oOoBqJfOUC5/1d4caTX w/NtxHy2O3Gtq4JqCfYIVlZAg4QWL+QbueaU3CY/8Ptyc5yLKqfJ1gwVEm4JXLv9QxoG D6mF7XtFNmyOxpK00IE+6QNY2BF+XbDDbDtZLeNs6V5F+n1DfCeKS30c/gfz3dF23U/5 lMA1LfdYS7V94FxiG2xdVKyBx3h2la2UPwmMtGIjPn6xCbzzwbLgn830WxjLD7sZC1XB veXZYG0s0ABeknaurZU4IpK0G2Zp4q4vU5pKLd5QNF3oH9Tt5J8302cElIB7kLRecPFt 0sVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6s5+lBZPd6kPpH2XtcMdU6V+PuL5s5CxpBv0kgSgmXw=; b=BDEzS86/39uWgvdOxUrp52ZJ+5FYr5L4XupRTh22fnobdg5Sb/RnX/9IaGPLk+KZU4 jUHuQGAT+VQOaUsVkMESZmya/iizivicfT8ugdVQ+gaBd128+FilBD1twOw0KzEvUnEK YXiNHOMtSy1kdGTU7sKMBetbkAomBBaom5O8+mYsGDBDn8isrswaEzqSRB/FOXybVEin 1PbXk5eW8f4v1GxD5+Z4cP6T22CnOgFFakNjgRv9bMyXEiEPZ09pLngkVIX1BIQAvh04 xhe6zpBkRY80ZEwRzbqEHW/Y0qCe+0qCrwUl+z1rKLxQZdSSJDDI7BXFIMGK7keqL9wn Ecyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=h7UIId9X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q25si1995343edb.159.2019.10.03.10.13.06; Thu, 03 Oct 2019 10:13:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=h7UIId9X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389802AbfJCQbV (ORCPT + 99 others); Thu, 3 Oct 2019 12:31:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:38036 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391253AbfJCQbQ (ORCPT ); Thu, 3 Oct 2019 12:31:16 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CAC7120830; Thu, 3 Oct 2019 16:31:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570120276; bh=XUmmIth62BR1fhxQkpaj7JH5ZHWo0kcvwHPpfRdMUzc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h7UIId9XUemKRVEtEC3yAeHqh2DvgXYfuzn/nQrnkNTVjbQmTIORMelLqDbDdLytG 7alS76eo5HwXNYDdlkEtHArETgKqYL7T2KN6eVHvFRz9My2ElUE4krU48loL1Pjxgf kHMecozv5Ih0/3obOWBb1Lol/ENGR8XyDxD23WBU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Liguang Zhang , Borislav Petkov , "Rafael J. Wysocki" , Sasha Levin Subject: [PATCH 5.2 123/313] ACPI / APEI: Release resources if gen_pool_add() fails Date: Thu, 3 Oct 2019 17:51:41 +0200 Message-Id: <20191003154545.050926099@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154533.590915454@linuxfoundation.org> References: <20191003154533.590915454@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Liguang Zhang [ Upstream commit 6abc7622271dc520f241462e2474c71723638851 ] Destroy ghes_estatus_pool and release memory allocated via vmalloc() on errors in ghes_estatus_pool_init() in order to avoid memory leaks. [ bp: do the labels properly and with descriptive names and massage. ] Signed-off-by: Liguang Zhang Signed-off-by: Borislav Petkov Link: https://lkml.kernel.org/r/1563173924-47479-1-git-send-email-zhangliguang@linux.alibaba.com Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin --- drivers/acpi/apei/ghes.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 993940d582f50..6875bf629f16e 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -153,6 +153,7 @@ static void ghes_unmap(void __iomem *vaddr, enum fixed_addresses fixmap_idx) int ghes_estatus_pool_init(int num_ghes) { unsigned long addr, len; + int rc; ghes_estatus_pool = gen_pool_create(GHES_ESTATUS_POOL_MIN_ALLOC_ORDER, -1); if (!ghes_estatus_pool) @@ -164,7 +165,7 @@ int ghes_estatus_pool_init(int num_ghes) ghes_estatus_pool_size_request = PAGE_ALIGN(len); addr = (unsigned long)vmalloc(PAGE_ALIGN(len)); if (!addr) - return -ENOMEM; + goto err_pool_alloc; /* * New allocation must be visible in all pgd before it can be found by @@ -172,7 +173,19 @@ int ghes_estatus_pool_init(int num_ghes) */ vmalloc_sync_all(); - return gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1); + rc = gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1); + if (rc) + goto err_pool_add; + + return 0; + +err_pool_add: + vfree((void *)addr); + +err_pool_alloc: + gen_pool_destroy(ghes_estatus_pool); + + return -ENOMEM; } static int map_gen_v2(struct ghes *ghes) -- 2.20.1