Skip to content
  • Arnd Bergmann's avatar
    crypto - Avoid free() namespace collision · d099ea6e
    Arnd Bergmann authored
    gcc-10 complains about using the name of a standard library
    function in the kernel, as we are not building with -ffreestanding:
    
    crypto/xts.c:325:13: error: conflicting types for built-in function 'free'; expected 'void(void *)' [-Werror=builtin-declaration-mismatch]
      325 | static void free(struct skcipher_instance *inst)
          |             ^~~~
    crypto/lrw.c:290:13: error: conflicting types for built-in function 'free'; expected 'void(void *)' [-Werror=builtin-declaration-mismatch]
      290 | static void free(struct skcipher_instance *inst)
          |             ^~~~
    crypto/lrw.c:27:1: note: 'free' is declared in header '<stdlib.h>'
    
    The xts and lrw cipher implementations run into this because they do
    not use the conventional namespaced function names.
    
    It might be better to rename all local functions in those files to
    help with things like 'ctags' and 'grep', but just renaming these two
    avoids the build issue. I picked the more verbose crypto_xts_free()
    and crypto_lrw_free() names for consistency with several other drivers
    that do use namespaced function names.
    
    Fixes: f1c131b4 ("crypto: xts - Convert to skcipher")
    Fixes: 700cb3f5
    
     ("crypto: lrw - Convert to skcipher")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    d099ea6e