Re: [PATCH] mm/mempolicy: Fix weighted interleave auto sysfs name
From: Gregory Price
Date: Tue Apr 07 2026 - 13:09:17 EST
On Tue, Apr 07, 2026 at 07:14:14AM -0700, Joshua Hahn wrote:
> The __ATTR macro is a utility that makes defining kobj_attributes easier
> by stringfying the name, verifying the mode, and setting the show/store
> fields in a single initializer. It takes a raw token as the first value,
> rather than a string, so that __ATTR family macros like __ATTR_RW can
> token-paste it for inferring the _show / _store function names.
>
> Commit e341f9c3c841 ("mm/mempolicy: Weighted Interleave Auto-tuning")
> used the __ATTR macro to define the "auto" sysfs for weighted
> interleave. A few months later, commit 2fb6915fa22d ("compiler_types.h:
> add "auto" as a macro for "__auto_type"") introduced a #define macro
> which expanded auto into __auto_type.
>
Well that's really unfortunately.
Is this really the only "auto" in the entire sysfs structure?
> This led to the "auto" token passed into __ATTR to be expanded out into
> __auto_type, and the sysfs entry to be displayed as __auto_type as well.
>
> Expand out the __ATTR macro and directly pass a string "auto" instead of
> the raw token 'auto' to prevent it from being expanded out. Also bypass
> the VERIFY_OCTAL_PERMISSIONS check by triple checking that 0664 is
> indeed the intended permissions for this sysfs file.
>
> Before:
> $ ls /sys/kernel/mm/mempolicy/weighted_interleave
> __auto_type node0
>
> After:
> $ ls /sys/kernel/mm/mempolicy/weighted_interleave/
> auto node0
>
> Based on latest mm-new: 96881c429af1
>
> Signed-off-by: Joshua Hahn <joshua.hahnjy@xxxxxxxxx>
Maybe -
Fixes: 2fb6915fa22d ("compiler_types.h: add "auto" as a macro for "__auto_type"")
Reviewed-by: Gregory Price <gourry@xxxxxxxxxx>
~Gregory