* [PATCH v2] platform/x86: hp-bioscfg: Support allocations of larger data
@ 2026-02-25 21:06 Mario Limonciello
2026-02-27 11:38 ` Ilpo Järvinen
0 siblings, 1 reply; 2+ messages in thread
From: Mario Limonciello @ 2026-02-25 21:06 UTC (permalink / raw)
To: mario.limonciello, jorge.lopez2, hansg, ilpo.jarvinen, linux
Cc: stable, Paul Kerry, Ben Hutchings, platform-driver-x86
Some systems have much larger amounts of enumeration attributes
than have been previously encountered. This can lead to page allocation
failures when using kcalloc(). Switch over to using kvcalloc() to
allow larger allocations.
Fixes: 6b2770bfd6f92 ("platform/x86: hp-bioscfg: enum-attributes")
Cc: stable@vger.kernel.org
Reported-by: Paul Kerry <p.kerry@sheffield.ac.uk>
Tested-by: Paul Kerry <p.kerry@sheffield.ac.uk>
Closes: https://bugs.debian.org/1127612
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
Cc: Ben Hutchings <ben@decadent.org.uk>
v2: Add matching kvfree() (Ben)
---
drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c
index 470b9f44ed7aa..af4d1920d4880 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c
@@ -94,8 +94,11 @@ int hp_alloc_enumeration_data(void)
bioscfg_drv.enumeration_instances_count =
hp_get_instance_count(HP_WMI_BIOS_ENUMERATION_GUID);
- bioscfg_drv.enumeration_data = kzalloc_objs(*bioscfg_drv.enumeration_data,
- bioscfg_drv.enumeration_instances_count);
+ if (!bioscfg_drv.enumeration_instances_count)
+ return -EINVAL;
+ bioscfg_drv.enumeration_data = kvcalloc(bioscfg_drv.enumeration_instances_count,
+ sizeof(*bioscfg_drv.enumeration_data), GFP_KERNEL);
+
if (!bioscfg_drv.enumeration_data) {
bioscfg_drv.enumeration_instances_count = 0;
return -ENOMEM;
@@ -444,6 +447,6 @@ void hp_exit_enumeration_attributes(void)
}
bioscfg_drv.enumeration_instances_count = 0;
- kfree(bioscfg_drv.enumeration_data);
+ kvfree(bioscfg_drv.enumeration_data);
bioscfg_drv.enumeration_data = NULL;
}
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] platform/x86: hp-bioscfg: Support allocations of larger data
2026-02-25 21:06 [PATCH v2] platform/x86: hp-bioscfg: Support allocations of larger data Mario Limonciello
@ 2026-02-27 11:38 ` Ilpo Järvinen
0 siblings, 0 replies; 2+ messages in thread
From: Ilpo Järvinen @ 2026-02-27 11:38 UTC (permalink / raw)
To: jorge.lopez2, hansg, linux, Mario Limonciello
Cc: stable, Paul Kerry, Ben Hutchings, platform-driver-x86
On Wed, 25 Feb 2026 15:06:46 -0600, Mario Limonciello wrote:
> Some systems have much larger amounts of enumeration attributes
> than have been previously encountered. This can lead to page allocation
> failures when using kcalloc(). Switch over to using kvcalloc() to
> allow larger allocations.
>
>
Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.
The list of commits applied:
[1/1] platform/x86: hp-bioscfg: Support allocations of larger data
commit: 916727cfdb72cd01fef3fa6746e648f8cb70e713
--
i.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-27 11:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-25 21:06 [PATCH v2] platform/x86: hp-bioscfg: Support allocations of larger data Mario Limonciello
2026-02-27 11:38 ` Ilpo Järvinen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox