scripts: Fix gfp-translate after ___GFP_*_BITS conversion to an enum

Richard reports that since 772dd0342727c ("mm: enumerate all gfp flags"),
gfp-translate is broken, as the bit numbers are implicit, leaving
the shell script unable to extract them. Even more, some bits are now at
a variable location, making it double extra hard to parse using a simple
shell script.

Use a brute-force approach to the problem by generating a small C stub
that will use the enum to dump the interesting bits.

As an added bonus, we are now able to identify invalid bits for
a given configuration. As an added drawback, we cannot parse include
files that predate this change anymore. Tough luck.

Fixes: 772dd0342727c ("mm: enumerate all gfp flags")
Reported-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Petr Tesařík <petr@tesarici.cz>
Cc: Suren Baghdasaryan <surenb@google.com>
1 file changed