• Linus Torvalds's avatar
    Avoid using variable-length arrays in kernel/sys.c · a84a79e4
    Linus Torvalds authored
    The size is always valid, but variable-length arrays generate worse code
    for no good reason (unless the function happens to be inlined and the
    compiler sees the length for the simple constant it is).
    
    Also, there seems to be some code generation problem on POWER, where
    Henrik Bakken reports that register r28 can get corrupted under some
    subtle circumstances (interrupt happening at the wrong time?).  That all
    indicates some seriously broken compiler issues, but since variable
    length arrays are bad regardless, there's little point in trying to
    chase it down.
    
    "Just don't do that, then".
    Reported-by: default avatarHenrik Grindal Bakken <henribak@cisco.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: stable@kernel.org
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a84a79e4
sys.c 44.1 KB