• Stefano Garzarella's avatar
    vsock/virtio: fix "comparison of distinct pointer types lacks a cast" warning · b0a930e8
    Stefano Garzarella authored
    After backporting commit 581512a6 ("vsock/virtio: MSG_ZEROCOPY
    flag support") in CentOS Stream 9, CI reported the following error:
    
        In file included from ./include/linux/kernel.h:17,
                         from ./include/linux/list.h:9,
                         from ./include/linux/preempt.h:11,
                         from ./include/linux/spinlock.h:56,
                         from net/vmw_vsock/virtio_transport_common.c:9:
        net/vmw_vsock/virtio_transport_common.c: In function ‘virtio_transport_can_zcopy‘:
        ./include/linux/minmax.h:20:35: error: comparison of distinct pointer types lacks a cast [-Werror]
           20 |         (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
              |                                   ^~
        ./include/linux/minmax.h:26:18: note: in expansion of macro ‘__typecheck‘
           26 |                 (__typecheck(x, y) && __no_side_effects(x, y))
              |                  ^~~~~~~~~~~
        ./include/linux/minmax.h:36:31: note: in expansion of macro ‘__safe_cmp‘
           36 |         __builtin_choose_expr(__safe_cmp(x, y), \
              |                               ^~~~~~~~~~
        ./include/linux/minmax.h:45:25: note: in expansion of macro ‘__careful_cmp‘
           45 | #define min(x, y)       __careful_cmp(x, y, <)
              |                         ^~~~~~~~~~~~~
        net/vmw_vsock/virtio_transport_common.c:63:37: note: in expansion of macro ‘min‘
           63 |                 int pages_to_send = min(pages_in_iov, MAX_SKB_FRAGS);
    
    We could solve it by using min_t(), but this operation seems entirely
    unnecessary, because we also pass MAX_SKB_FRAGS to iov_iter_npages(),
    which performs almost the same check, returning at most MAX_SKB_FRAGS
    elements. So, let's eliminate this unnecessary comparison.
    
    Fixes: 581512a6 ("vsock/virtio: MSG_ZEROCOPY flag support")
    Cc: avkrasnov@salutedevices.com
    Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
    Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Reviewed-by: default avatarArseniy Krasnov <avkrasnov@salutedevices.com>
    Link: https://lore.kernel.org/r/20231206164143.281107-1-sgarzare@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    b0a930e8
virtio_transport_common.c 39.8 KB