From: Bjorn Helgaas <helgaas@kernel.org>
To: Jiawen Wu <jiawenwu@trustnetic.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Tony Luck <tony.luck@intel.com>, Borislav Petkov <bp@alien8.de>,
Hanjun Guo <guohanjun@huawei.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Shuai Xue <xueshuai@linux.alibaba.com>,
Len Brown <lenb@kernel.org>, Shiju Jose <shiju.jose@huawei.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ACPI: APEI: Avoid NULL pointer dereference in ghes_estatus_pool_region_free
Date: Tue, 3 Feb 2026 16:55:09 -0600 [thread overview]
Message-ID: <20260203225509.GA195397@bhelgaas> (raw)
In-Reply-To: <23A877C77DF26B7C+20260203021233.8178-1-jiawenwu@trustnetic.com>
On Tue, Feb 03, 2026 at 10:12:32AM +0800, Jiawen Wu wrote:
> The function ghes_estatus_pool_region_free() is exported and be called
> by the PCIe AER recovery path, which unconditionally invokes it to free
> aer_capability_regs memory.
>
> Although current AER usage assumes memory comes from the GHES pool,
> robustness requires guarding against pool unavailability. Add a NULL check
> before calling gen_pool_free() to prevent crashes when the pool is not
> initialized. This also makes the API safer for potential future use by
> non-GHES callers.
I'm not sure what you mean by "pool unavailability." I think getting
here with ghes_estatus_pool==NULL means we have a logic error
somewhere, and I don't think we should silently hide that error.
I'm generally in favor of *not* checking so we find out if the caller
forgot to keep track of the pointer correctly.
> Fixes: e2abc47a5a1a ("ACPI: APEI: Fix AER info corruption when error status data has multiple sections")
> Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
> ---
> drivers/acpi/apei/ghes.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index 0dc767392a6c..e81c007464a9 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -236,7 +236,8 @@ int ghes_estatus_pool_init(unsigned int num_ghes)
> */
> void ghes_estatus_pool_region_free(unsigned long addr, u32 size)
> {
> - gen_pool_free(ghes_estatus_pool, addr, size);
> + if (ghes_estatus_pool)
> + gen_pool_free(ghes_estatus_pool, addr, size);
> }
> EXPORT_SYMBOL_GPL(ghes_estatus_pool_region_free);
>
> --
> 2.48.1
>
next prev parent reply other threads:[~2026-02-03 22:55 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 2:12 [PATCH] ACPI: APEI: Avoid NULL pointer dereference in ghes_estatus_pool_region_free Jiawen Wu
2026-02-03 12:56 ` Rafael J. Wysocki
2026-02-04 1:52 ` Jiawen Wu
2026-02-03 22:55 ` Bjorn Helgaas [this message]
2026-02-04 2:03 ` Jiawen Wu
2026-02-04 21:46 ` Bjorn Helgaas
2026-02-05 3:11 ` Jiawen Wu
2026-02-05 15:39 ` Bjorn Helgaas
2026-02-06 8:15 ` Jiawen Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260203225509.GA195397@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=guohanjun@huawei.com \
--cc=jiawenwu@trustnetic.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=rafael@kernel.org \
--cc=shiju.jose@huawei.com \
--cc=tony.luck@intel.com \
--cc=xueshuai@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.