* [PATCH 0/3] HID: use designated initializers for acpi_device_id
@ 2026-09-08 9:19 Pawel Zalewski
2026-09-08 9:19 ` [PATCH 1/3] HID: hid-google-hammer: use named " Pawel Zalewski
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Pawel Zalewski @ 2026-09-08 9:19 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires, Maximilian Luz
Cc: linux-input, linux-kernel, platform-driver-x86, Pawel Zalewski
This series is converting lists that contain the acpi_device_id struct,
which is defined in the include/linux/device-id/acpi.h to make use of named
initializers (which they do not use currently). This work is part of the on
going effort in the kernel associated with device-ids [1]
The plan is to convert acpi_device_id::driver_data to have an anonymous
union, similarly to what was introduced for PCI and I2C device ID tables.
The goal is to increase type-safety (most of the existing casts are gone),
to improve readability and to make use intent a bit more clear:
```
union {
kernel_ulong_t driver_data;
const void *driver_data_ptr;
}
```
But for that to work all lists containing the structs need to use named
initializers first to avoid triggering -Wmissing-braces. I already have
patches that implement this and touching a lot of kernel subsystmes that
use the acpi_device_id struct and that list keeps on growing. Therefore,
I have decided to split the series per every subsystem into:
- pre-clean-ups that convert the lists to use named initializers
(which is this series)
- actual implementations that make some of the modules use the new
driver_data_ptr member (does not apply here in the HID subsystem).
That way the task can be fragmented into manageable and independent chunks
of work and makes this effort easier to review.
Tested builds on x86-64 and a64 in Yocto using 7.3-rc2.
[1] https://lore.kernel.org/all/cover.1780048925.git.u.kleine-koenig@baylibre.com/
Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
---
Pawel Zalewski (3):
HID: hid-google-hammer: use named initializers for acpi_device_id
HID: i2c-hid: use named initializers for acpi_device_id
HID: surface-hid: use named initializers for acpi_device_id
drivers/hid/hid-google-hammer.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 8 ++++----
drivers/hid/surface-hid/surface_kbd.c | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
---
base-commit: 28924df2a08f440c73991b83028032c901de2ae4
change-id: 20260908-acpi-hid-4305ca77f0a6
Best regards,
--
Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] HID: hid-google-hammer: use named initializers for acpi_device_id
2026-09-08 9:19 [PATCH 0/3] HID: use designated initializers for acpi_device_id Pawel Zalewski
@ 2026-09-08 9:19 ` Pawel Zalewski
2026-09-08 9:24 ` sashiko-bot
2026-09-08 9:19 ` [PATCH 2/3] HID: i2c-hid: " Pawel Zalewski
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Pawel Zalewski @ 2026-09-08 9:19 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires, Maximilian Luz
Cc: linux-input, linux-kernel, platform-driver-x86, Pawel Zalewski
Use a designated initializer for the acpi_device_id fields which makes the
code more readable and consistent with how lists are initialized in the
rest of the kernel code base. Also drop explicitly setting fields to 0
where it is redundant.
Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
---
drivers/hid/hid-google-hammer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/hid/hid-google-hammer.c b/drivers/hid/hid-google-hammer.c
index c99c3c0d442e..847b1ddefeec 100644
--- a/drivers/hid/hid-google-hammer.c
+++ b/drivers/hid/hid-google-hammer.c
@@ -268,7 +268,7 @@ static void cbas_ec_remove(struct platform_device *pdev)
#ifdef CONFIG_ACPI
static const struct acpi_device_id cbas_ec_acpi_ids[] = {
- { "GOOG000B", 0 },
+ { .id = "GOOG000B" },
{ }
};
MODULE_DEVICE_TABLE(acpi, cbas_ec_acpi_ids);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] HID: i2c-hid: use named initializers for acpi_device_id
2026-09-08 9:19 [PATCH 0/3] HID: use designated initializers for acpi_device_id Pawel Zalewski
2026-09-08 9:19 ` [PATCH 1/3] HID: hid-google-hammer: use named " Pawel Zalewski
@ 2026-09-08 9:19 ` Pawel Zalewski
2026-09-08 9:19 ` [PATCH 3/3] HID: surface-hid: " Pawel Zalewski
2026-09-11 15:40 ` [PATCH 0/3] HID: use designated " Jiri Kosina
3 siblings, 0 replies; 6+ messages in thread
From: Pawel Zalewski @ 2026-09-08 9:19 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires, Maximilian Luz
Cc: linux-input, linux-kernel, platform-driver-x86, Pawel Zalewski
Use a named initializer for the acpi_device_id fields which makes the code
more readable and consistent with how lists are initialized in the rest of
the kernel code base.
Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
---
drivers/hid/i2c-hid/i2c-hid-acpi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/hid/i2c-hid/i2c-hid-acpi.c b/drivers/hid/i2c-hid/i2c-hid-acpi.c
index 13f977d6aab6..9371db200fc4 100644
--- a/drivers/hid/i2c-hid/i2c-hid-acpi.c
+++ b/drivers/hid/i2c-hid/i2c-hid-acpi.c
@@ -39,12 +39,12 @@ static const struct acpi_device_id i2c_hid_acpi_blacklist[] = {
* The CHPN0001 ACPI device, which is used to describe the Chipone
* ICN8505 controller, has a _CID of PNP0C50 but is not HID compatible.
*/
- { "CHPN0001" },
+ { .id = "CHPN0001" },
/*
* The IDEA5002 ACPI device causes high interrupt usage and spurious
* wakeups from suspend.
*/
- { "IDEA5002" },
+ { .id = "IDEA5002" },
{ }
};
@@ -93,8 +93,8 @@ static int i2c_hid_acpi_probe(struct i2c_client *client)
}
static const struct acpi_device_id i2c_hid_acpi_match[] = {
- { "ACPI0C50" },
- { "PNP0C50" },
+ { .id = "ACPI0C50" },
+ { .id = "PNP0C50" },
{ }
};
MODULE_DEVICE_TABLE(acpi, i2c_hid_acpi_match);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] HID: surface-hid: use named initializers for acpi_device_id
2026-09-08 9:19 [PATCH 0/3] HID: use designated initializers for acpi_device_id Pawel Zalewski
2026-09-08 9:19 ` [PATCH 1/3] HID: hid-google-hammer: use named " Pawel Zalewski
2026-09-08 9:19 ` [PATCH 2/3] HID: i2c-hid: " Pawel Zalewski
@ 2026-09-08 9:19 ` Pawel Zalewski
2026-09-11 15:40 ` [PATCH 0/3] HID: use designated " Jiri Kosina
3 siblings, 0 replies; 6+ messages in thread
From: Pawel Zalewski @ 2026-09-08 9:19 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires, Maximilian Luz
Cc: linux-input, linux-kernel, platform-driver-x86, Pawel Zalewski
Use a named initializer for the acpi_device_id fields which makes the code
more readable and consistent with how lists are initialized in the rest of
the kernel code base.
Unify the list terminator to have a single space between the brackets and
no trailing comma.
Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
---
drivers/hid/surface-hid/surface_kbd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/surface-hid/surface_kbd.c b/drivers/hid/surface-hid/surface_kbd.c
index 0be01b5e74258..036829ba47d42 100644
--- a/drivers/hid/surface-hid/surface_kbd.c
+++ b/drivers/hid/surface-hid/surface_kbd.c
@@ -277,8 +277,8 @@ static void surface_kbd_remove(struct platform_device *pdev)
}
static const struct acpi_device_id surface_kbd_match[] = {
- { "MSHW0096" },
- { },
+ { .id = "MSHW0096" },
+ { }
};
MODULE_DEVICE_TABLE(acpi, surface_kbd_match);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/3] HID: hid-google-hammer: use named initializers for acpi_device_id
2026-09-08 9:19 ` [PATCH 1/3] HID: hid-google-hammer: use named " Pawel Zalewski
@ 2026-09-08 9:24 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-09-08 9:24 UTC (permalink / raw)
To: Pawel Zalewski; +Cc: dmitry.torokhov, linux-input
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Missing validation of `field->maxusage` before accessing `field->usage->hid`.
--
commit f7c0a66497368221036f024200ddbda2e9fb80a9
Author: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
HID: hid-google-hammer: use named initializers for acpi_device_id
Use a designated initializer for the acpi_device_id fields which makes the
code more readable and consistent with how lists are initialized in the
rest of the kernel code base. Also drop explicitly setting fields to 0
where it is redundant.
> diff --git a/drivers/hid/hid-google-hammer.c b/drivers/hid/hid-google-hammer.c
> index c99c3c0d442e1..847b1ddefeeca 100644
> --- a/drivers/hid/hid-google-hammer.c
> +++ b/drivers/hid/hid-google-hammer.c
> @@ -268,7 +268,7 @@ static void cbas_ec_remove(struct platform_device *pdev)
>
> #ifdef CONFIG_ACPI
> static const struct acpi_device_id cbas_ec_acpi_ids[] = {
> - { "GOOG000B", 0 },
> + { .id = "GOOG000B" },
> { }
> };
> MODULE_DEVICE_TABLE(acpi, cbas_ec_acpi_ids);
[Severity: High]
This is a pre-existing issue, but does hammer_get_folded_state() lack validation
for the number of usages before accessing the usage array?
Looking at drivers/hid/hid-google-hammer.c:hammer_get_folded_state():
for (a = 0; a < report->maxfield; a++) {
struct hid_field *field = report->field[a];
if (field->usage->hid == HID_USAGE_KBD_FOLDED) {
u32 value = hid_field_extract(hdev, buf+1,
field->report_offset, field->report_size);
hammer_folded_event(hdev, value);
break;
}
}
If a maliciously crafted HID descriptor declares a field with 0 usages
(where field->maxusage == 0), will accessing field->usage->hid
(equivalent to field->usage[0].hid) cause an out-of-bounds memory read?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260908-acpi-hid-v1-0-08df24c4b139@thegoodpenguin.co.uk?part=1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/3] HID: use designated initializers for acpi_device_id
2026-09-08 9:19 [PATCH 0/3] HID: use designated initializers for acpi_device_id Pawel Zalewski
` (2 preceding siblings ...)
2026-09-08 9:19 ` [PATCH 3/3] HID: surface-hid: " Pawel Zalewski
@ 2026-09-11 15:40 ` Jiri Kosina
3 siblings, 0 replies; 6+ messages in thread
From: Jiri Kosina @ 2026-09-11 15:40 UTC (permalink / raw)
To: Pawel Zalewski
Cc: Benjamin Tissoires, Maximilian Luz, linux-input, linux-kernel,
platform-driver-x86
On Tue, 8 Sep 2026, Pawel Zalewski wrote:
> This series is converting lists that contain the acpi_device_id struct,
> which is defined in the include/linux/device-id/acpi.h to make use of named
> initializers (which they do not use currently). This work is part of the on
> going effort in the kernel associated with device-ids [1]
>
> The plan is to convert acpi_device_id::driver_data to have an anonymous
> union, similarly to what was introduced for PCI and I2C device ID tables.
> The goal is to increase type-safety (most of the existing casts are gone),
> to improve readability and to make use intent a bit more clear:
>
> ```
> union {
> kernel_ulong_t driver_data;
> const void *driver_data_ptr;
> }
> ```
>
> But for that to work all lists containing the structs need to use named
> initializers first to avoid triggering -Wmissing-braces. I already have
> patches that implement this and touching a lot of kernel subsystmes that
> use the acpi_device_id struct and that list keeps on growing. Therefore,
> I have decided to split the series per every subsystem into:
> - pre-clean-ups that convert the lists to use named initializers
> (which is this series)
> - actual implementations that make some of the modules use the new
> driver_data_ptr member (does not apply here in the HID subsystem).
>
> That way the task can be fragmented into manageable and independent chunks
> of work and makes this effort easier to review.
>
> Tested builds on x86-64 and a64 in Yocto using 7.3-rc2.
>
> [1] https://lore.kernel.org/all/cover.1780048925.git.u.kleine-koenig@baylibre.com/
>
> Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
> ---
> Pawel Zalewski (3):
> HID: hid-google-hammer: use named initializers for acpi_device_id
> HID: i2c-hid: use named initializers for acpi_device_id
> HID: surface-hid: use named initializers for acpi_device_id
Applied, thank you.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-09-11 15:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-08 9:19 [PATCH 0/3] HID: use designated initializers for acpi_device_id Pawel Zalewski
2026-09-08 9:19 ` [PATCH 1/3] HID: hid-google-hammer: use named " Pawel Zalewski
2026-09-08 9:24 ` sashiko-bot
2026-09-08 9:19 ` [PATCH 2/3] HID: i2c-hid: " Pawel Zalewski
2026-09-08 9:19 ` [PATCH 3/3] HID: surface-hid: " Pawel Zalewski
2026-09-11 15:40 ` [PATCH 0/3] HID: use designated " Jiri Kosina
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.