From: Rosen Penev <rosenp@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: "Kenneth Chan" <kenneth.t.chan@gmail.com>,
"Hans de Goede" <hansg@kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Kees Cook" <kees@kernel.org>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
linux-kernel@vger.kernel.org (open list),
linux-hardening@vger.kernel.org (open list:KERNEL HARDENING (not
covered by other areas):Keyword:b__counted_by(_le|_be)?b)
Subject: [PATCH] platform/x86: panasonic-laptop: simplify allocation of sinf
Date: Thu, 30 Apr 2026 15:15:55 -0700 [thread overview]
Message-ID: <20260430221555.83351-1-rosenp@gmail.com> (raw)
Change to a flexible array member to allocate once instead of twice.
Use __counted_by for extra runtime analysis. Move the counting
variable assignment to right after allocation as done by
kzalloc_flex for GCC 15 and above.
Remove + 1 to allocation. It's already done in the previous line.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
v3: Rephrased.
v2: Rebased.
drivers/platform/x86/panasonic-laptop.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 1337f7c49805..2fe8ff0d32a8 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -246,11 +246,11 @@ struct pcc_acpi {
int ac_brightness;
int dc_brightness;
int current_brightness;
- u32 *sinf;
struct acpi_device *device;
struct input_dev *input_dev;
struct backlight_device *backlight;
struct platform_device *platform;
+ u32 sinf[] __counted_by(num_sifr);
};
/*
@@ -1003,21 +1003,15 @@ static int acpi_pcc_hotkey_probe(struct platform_device *pdev)
*/
num_sifr++;
- pcc = kzalloc_obj(struct pcc_acpi);
+ pcc = kzalloc_flex(*pcc, sinf, num_sifr);
if (!pcc) {
pr_err("Couldn't allocate mem for pcc");
return -ENOMEM;
}
- pcc->sinf = kcalloc(num_sifr + 1, sizeof(u32), GFP_KERNEL);
- if (!pcc->sinf) {
- result = -ENOMEM;
- goto out_hotkey;
- }
-
+ pcc->num_sifr = num_sifr;
pcc->device = device;
pcc->handle = device->handle;
- pcc->num_sifr = num_sifr;
device->driver_data = pcc;
strscpy(acpi_device_name(device), ACPI_PCC_DEVICE_NAME);
strscpy(acpi_device_class(device), ACPI_PCC_CLASS);
@@ -1025,7 +1019,7 @@ static int acpi_pcc_hotkey_probe(struct platform_device *pdev)
result = acpi_pcc_init_input(pcc);
if (result) {
pr_err("Error installing keyinput handler\n");
- goto out_sinf;
+ goto out_hotkey;
}
if (!acpi_pcc_retrieve_biosdata(pcc)) {
@@ -1106,10 +1100,8 @@ static int acpi_pcc_hotkey_probe(struct platform_device *pdev)
backlight_device_unregister(pcc->backlight);
out_input:
input_unregister_device(pcc->input_dev);
-out_sinf:
- device->driver_data = NULL;
- kfree(pcc->sinf);
out_hotkey:
+ device->driver_data = NULL;
kfree(pcc);
return result;
@@ -1139,7 +1131,6 @@ static void acpi_pcc_hotkey_remove(struct platform_device *pdev)
device->driver_data = NULL;
- kfree(pcc->sinf);
kfree(pcc);
}
--
2.54.0
next reply other threads:[~2026-04-30 22:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-30 22:15 Rosen Penev [this message]
2026-05-11 17:53 ` [PATCH] platform/x86: panasonic-laptop: simplify allocation of sinf Ilpo Järvinen
-- strict thread matches above, loose matches on Subject: below --
2026-03-20 0:49 Rosen Penev
2026-03-20 18:32 ` Kees Cook
2026-03-20 23:02 ` Rosen Penev
2026-03-23 9:13 ` Ilpo Järvinen
2026-03-23 16:44 ` Rosen Penev
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=20260430221555.83351-1-rosenp@gmail.com \
--to=rosenp@gmail.com \
--cc=gustavoars@kernel.org \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kees@kernel.org \
--cc=kenneth.t.chan@gmail.com \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
/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.