• Behan Webster's avatar
    clk: ti: LLVMLinux: Move __init outside of type definition · e8627a9e
    Behan Webster authored
    As written, the __init for ti_clk_get_div_table is in the middle of the return
    type.
    
    The gcc documentation indicates that section attributes should be added to the
    end of the function declaration:
    
      extern void foobar (void) __attribute__ ((section ("bar")));
    
    However gcc seems to be very permissive with where attributes can be placed.
    clang on the other hand isn't so permissive, and fails if you put the section
    definition in the middle of the return type:
    
    drivers/clk/ti/divider.c:298:28: error: expected ';' after struct
    static struct clk_div_table
                               ^
                               ;
    drivers/clk/ti/divider.c:298:1: warning: 'static' ignored on this
          declaration [-Wmissing-declarations]
    static struct clk_div_table
    ^
    drivers/clk/ti/divider.c:299:9: error: type specifier missing,
          defaults to 'int' [-Werror,-Wimplicit-int]
    __init *ti_clk_get_div_table(struct device_node *node)
    ~~~~~~  ^
    drivers/clk/ti/divider.c:345:9: warning: incompatible pointer types
          returning 'struct clk_div_table *' from a function with result type 'int *' [-Wincompatible-pointer-types]
            return table;
                   ^~~~~
    drivers/clk/ti/divider.c:419:9: warning: incompatible pointer types
          assigning to 'const struct clk_div_table *' from 'int *' [-Wincompatible-pointer-types]
            *table = ti_clk_get_div_table(node);
                   ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    3 warnings and 2 errors generated.
    
    By convention, most of the kernel code puts section attributes between the
    return type and function name. In the case where the return type is a pointer,
    it's important to place the '*' on left of the __init.
    
    This updated code works for both gcc and clang.
    Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
    Reviewed-by: default avatarMark Charlebois <charlebm@gmail.com>
    Reviewed-by: default avatarFelipe Balbi <balbi@ti.com>
    Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
    e8627a9e
divider.c 11.2 KB