Skip to content
  • Daniel Wagner's avatar
    kbuild: Add option to turn incompatible pointer check into error · ea8daa7b
    Daniel Wagner authored
    
    
    With the introduction of the simple wait API we have two very
    similar APIs in the kernel. For example wake_up() and swake_up()
    is only one character away. Although the compiler will warn
    happily the wrong usage it keeps on going an even links the kernel.
    Thomas and Peter would rather like to see early missuses reported
    as error early on.
    
    In a first attempt we tried to wrap all swait and wait calls
    into a macro which has an compile time type assertion. The result
    was pretty ugly and wasn't able to catch all wrong usages.
    woken_wake_function(), autoremove_wake_function() and wake_bit_function()
    are assigned as function pointers. Wrapping them with a macro around is
    not possible. Prefixing them with '_' was also not a real option
    because there some users in the kernel which do use them as well.
    All in all this attempt looked to intrusive and too ugly.
    
    An alternative is to turn the pointer type check into an error which
    catches wrong type uses. Obviously not only the swait/wait ones. That
    isn't a bad thing either.
    
    Signed-off-by: default avatarDaniel Wagner <daniel.wagner@bmw-carit.de>
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Acked-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
    ea8daa7b