scripts/kernel-doc: handle struct member __aligned without numbers
authorNishanth Menon <>
Thu, 28 Feb 2013 01:02:46 +0000 (17:02 -0800)
committerLinus Torvalds <>
Thu, 28 Feb 2013 03:10:09 +0000 (19:10 -0800)
Commit ef5da59f1260 ("scripts/kernel-doc: handle struct member
__aligned") permits "char something [123] __aligned(8);".

However, by using \d we constraint ourselves with integers.  This is not
always the case.  In fact, it might be better to do char something[123]

For example, With wireless_dev defining:

    u8 address[ETH_ALEN] __aligned(sizeof(u16));

With \d, scripts/kernel-doc erroneously says:

    Warning(include/net/cfg80211.h:2618): Excess struct/union/enum/typedef member 'address' description in 'wireless_dev'

This is because the regex __aligned\s*\(\d+\) fails match at \d as
sizeof is used.

So replace \d with .  to indicate "something" in kernel-doc to ignore
__aligned(SOMETHING) in structs.  With this change, we can use integers
OR sizeof() or macros as we please.

Signed-off-by: Nishanth Menon <>
Cc: Fengguang Wu <>
Cc: Johannes Berg <>
Cc: Randy Dunlap <>
Cc: Michal Marek <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>

index f565536a2bef17a8f6b88193d0b2db01e12dd716..4305b2f2ec5eb7f8432c2c6dd7daf983b59f6d24 100755 (executable)
@@ -1750,7 +1750,7 @@ sub dump_struct($$) {
        # strip kmemcheck_bitfield_{begin,end}.*;
        $members =~ s/kmemcheck_bitfield_.*?;//gos;
        # strip attributes
-       $members =~ s/__aligned\s*\(\d+\)//gos;
+       $members =~ s/__aligned\s*\(.+\)//gos;
        create_parameterlist($members, ';', $file);
        check_sections($file, $declaration_name, "struct", $sectcheck, $struct_actual, $nested);