Re: [PATCH 3/3] platform/x86: asus-armoury: add keyboard control firmware attributes

From: Ilpo Järvinen
Date: Mon Dec 29 2025 - 05:34:04 EST


On Fri, 26 Dec 2025, Krzysztof Kozlowski wrote:

> On 26/12/2025 12:46, Denis Benato wrote:
> >
> > On 12/26/25 12:06, Krzysztof Kozlowski wrote:
> >> On 25/12/2025 15:30, Denis Benato wrote:
> >>> +ASUS_ATTR_GROUP_BOOL(kbd_leds_shutdown, "kbd_leds_shutdown",
> >>> + "Keyboard backlight while system is shutdown");
> >>> +
> >>> static ssize_t gpu_mux_mode_current_value_store(struct kobject *kobj,
> >>> struct kobj_attribute *attr,
> >>> const char *buf, size_t count)
> >>> @@ -867,6 +1043,35 @@ static bool has_valid_limit(const char *name, const struct power_limits *limits)
> >>> return limit_value > 0;
> >>> }
> >>>
> >>> +static struct asus_armoury_kbd_status *asus_init_kbd_state(void)
> >>> +{
> >>> + int err;
> >>> + u32 kbd_status;
> >>> + struct asus_armoury_kbd_status *kbd_state __free(kfree) = NULL;
> >> This is an undesired syntax explicitly documented as one to avoid. You
> >> need here proper assignment, not NULL. Please don't use cleanup.h if you
> >> do not intend to follow it because it does not make the code simpler.
> > Hello and thank you for your feedback!
> >
> > I have used __free here to match a previous comment from Ilpo:
> > https://lore.kernel.org/all/25bd0c90-2de0-ef66-c18d-661180b71fd4@xxxxxxxxxxxxxxx/
> > and I figured that since this is the same exact pattern as that it would have made
> > sense to use it.
> >
> > May I ask you to elaborate further please? If there is a more effective way to take
> > advantage of cleanup.h I will very much consider it.
>
> Just read the doc before using it. It is very, very clear what is the
> recommended syntax,

The documentation is in include/linux/cleanup.h itself (search for "NULL"
to find the relevant part towards the end of the long comment).

And please still use __free(), we just want to avoid using its
anti-patterns.

--
i.