From: sashiko-bot@kernel.org
To: "Denis Benato" <denis.benato@linux.dev>
Cc: linux-input@vger.kernel.org, dmitry.torokhov@gmail.com
Subject: Re: [PATCH v4 13/13] HID: asus: add support for btn remapping
Date: Mon, 31 Aug 2026 00:08:10 +0000 [thread overview]
Message-ID: <20260831000810.97D6B1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260830234320.114356-14-denis.benato@linux.dev>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Unconditional probe failure due to duplicated sysfs group registration
--
commit f172dc807c5df947db7dc83836bfd7370ad00d67
Author: Denis Benato <denis.benato@linux.dev>
HID: asus: add support for btn remapping
This commit adds support for button remapping on the Asus ROG Ally,
allowing assignment of different events to physical buttons. It exposes a
remap_index sysfs attribute and refreshes the software cache when the
hardware defaults are automatically restored upon gamepad mode changes.
> diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
> index 7fc04d29de8de..b921e2af53662 100644
> --- a/drivers/hid/hid-asus.c
> +++ b/drivers/hid/hid-asus.c
[ ... ]
> @@ -3098,6 +4052,38 @@ static struct ally_config *ally_config_create(struct hid_device *hdev, struct al
> }
> }
>
> + for (sysfs_i = 0; sysfs_i < ARRAY_SIZE(ally_attr_groups); sysfs_i++) {
> + ret = devm_device_add_group(&hdev->dev, &ally_attr_groups[sysfs_i]);
[Severity: High]
Does this code inadvertently duplicate the sysfs registration blocks?
Looking at the full ally_config_create() function after this patch, there are
now two identical loops registering ally_attr_groups and two identical
blocks registering ally_cal_attr_groups and ally_create_button_attributes().
When the driver initialization reaches this newly added second loop,
devm_device_add_group() will attempt to register the exact same sysfs
attributes that were successfully registered in the first pass. The sysfs
core detects this duplicate file creation and returns -EEXIST, which causes
an unconditional early exit to the error handler.
Can this second set of registrations be removed to prevent the probe from
always failing?
> + if (ret < 0) {
> + hid_err(hdev, "Failed to create sysfs group '%s': %d\n",
> + ally_attr_groups[sysfs_i].name ?: "", ret);
> + goto ally_config_create_sysfs_err;
> + }
> + }
> +
> + /*
> + * Skip the calibration, anti-deadzone and response curve groups when
> + * none of the features they expose is supported.
> + */
> + if (cfg->user_cal_support || cfg->anti_deadzone_support ||
> + cfg->resp_curve_support) {
> + for (sysfs_i = 0; sysfs_i < ARRAY_SIZE(ally_cal_attr_groups); sysfs_i++) {
> + ret = devm_device_add_group(&hdev->dev,
> + ally_cal_attr_groups[sysfs_i]);
> + if (ret < 0) {
> + hid_err(hdev, "Failed to create sysfs group '%s': %d\n",
> + ally_cal_attr_groups[sysfs_i]->name, ret);
> + goto ally_config_create_sysfs_err;
> + }
> + }
> + }
> +
> + ret = ally_create_button_attributes(hdev, ally, cfg);
> + if (ret < 0) {
> + hid_err(hdev, "Failed to create button attributes: %d\n", ret);
> + goto ally_config_create_sysfs_err;
> + }
> +
> /* So far the only hardware this is supported is the Ally 1 */
> if (cfg->xbox_controller_support) {
> ret = ally_set_xbox_controller(hdev, ally, cfg, true);
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260830234320.114356-1-denis.benato@linux.dev?part=13
prev parent reply other threads:[~2026-08-31 0:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-30 23:43 [PATCH v4 00/13] HID: asus: add support for ROG Ally handhelds Denis Benato
2026-08-30 23:43 ` [PATCH v4 01/13] HID: asus: do not send keyboard init reports to touchpads Denis Benato
2026-08-30 23:43 ` [PATCH v4 02/13] HID: asus: reinitialize the device after exiting a sleep state Denis Benato
2026-08-30 23:43 ` [PATCH v4 03/13] HID: asus: add support for ROG Ally handhelds Denis Benato
2026-08-30 23:56 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 04/13] HID: asus: add gamepad configuration Denis Benato
2026-08-30 23:53 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 05/13] HID: asus: add vibration strength configuration Denis Benato
2026-08-30 23:43 ` [PATCH v4 06/13] HID: asus: add joysticks inner and outer range configuration Denis Benato
2026-08-31 0:05 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 07/13] HID: asus: add triggers " Denis Benato
2026-08-30 23:58 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 08/13] HID: asus: add joysticks anti-deadzone configuration Denis Benato
2026-08-30 23:57 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 09/13] HID: asus: add support for response curve Denis Benato
2026-08-31 0:03 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 10/13] HID: asus: add support to force feedback Denis Benato
2026-08-31 0:02 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 11/13] HID: asus: add support for gamepad mode Denis Benato
2026-08-31 0:05 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 12/13] HID: asus: add support for turbo buttons Denis Benato
2026-08-31 0:14 ` sashiko-bot
2026-08-30 23:43 ` [PATCH v4 13/13] HID: asus: add support for btn remapping Denis Benato
2026-08-31 0:08 ` sashiko-bot [this message]
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=20260831000810.97D6B1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=denis.benato@linux.dev \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.