• Arnd Bergmann's avatar
    memstick: r592: ignore kfifo_out() return code again · 2f156712
    Arnd Bergmann authored
    A minor cleanup to address a clang warning removed an assigned
    but unused local variable, but this now caused a gcc warning as
    kfifo_out() is annotated to require checking its return code:
    
    In file included from drivers/memstick/host/r592.h:13,
                     from drivers/memstick/host/r592.c:21:
    drivers/memstick/host/r592.c: In function 'r592_flush_fifo_write':
    include/linux/kfifo.h:588:1: error: ignoring return value of '__kfifo_uint_must_check_helper' declared with attribute 'warn_unused_result' [-Werror=unused-result]
      588 | __kfifo_uint_must_check_helper( \
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      589 | ({ \
          | ~~~~
      590 |         typeof((fifo) + 1) __tmp = (fifo); \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      591 |         typeof(__tmp->ptr) __buf = (buf); \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      592 |         unsigned long __n = (n); \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
      593 |         const size_t __recsize = sizeof(*__tmp->rectype); \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      594 |         struct __kfifo *__kfifo = &__tmp->kfifo; \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      595 |         (__recsize) ?\
          |         ~~~~~~~~~~~~~~
      596 |         __kfifo_out_r(__kfifo, __buf, __n, __recsize) : \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      597 |         __kfifo_out(__kfifo, __buf, __n); \
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      598 | }) \
          | ~~~~
      599 | )
          | ~
    drivers/memstick/host/r592.c:367:9: note: in expansion of macro 'kfifo_out'
      367 |         kfifo_out(&dev->pio_fifo, buffer, 4);
          |         ^~~~~~~~~
    
    The value was never checked here, and the purpose of the function
    is only to flush the contents, so restore the old behavior but
    add a cast to void and a comment, which hopefully warns with neither
    gcc nor clang now.
    
    If anyone has an idea for how to fix it without ignoring the return
    code, that is probably better.
    
    Fixes: 4b00ed3c ("memstick: r592: remove unused variable")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20210421135215.3414589-1-arnd@kernel.orgSigned-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    2f156712
r592.c 21.3 KB