• Jason Gunthorpe's avatar
    RDMA/uverbs: Combine MIN_SZ_OR_ZERO with UVERBS_ATTR_STRUCT · 422e3d37
    Jason Gunthorpe authored
    After all the rework is done it is now possible to include single flags in
    the type macros. Any user of UVERBS_ATTR_STRUCT needs to zero check data
    past the end of the known struct to be correct, so make this mandatory,
    and get rid of MIN_SZ_OR_ZERO as a user flag.
    
    This changes UVERBS_ATTR_TYPE to refer to a struct of exact size with not
    possibility of extension, convert the few users of UVERBS_ATTR_TYPE and
    MIN_SZ_OR_ZERO to use UVERBS_ATTR_STRUCT.
    
    The one user of UVERBS_ATTR_STRUCT without MIN_SZ_OR_ZERO is just
    confused. There is some padding at the end of that struct, but userspace
    always provides it with the padding. The construction doesn't test if the
    padding is zero, so it is pointless. Just use UVERBS_ATTR_TYPE.
    
    Finally, rename min_sz_or_zero to zero_trailing to better reflect what it
    does and hopefully avoid such mis-uses in the future.
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    422e3d37
uverbs_ioctl_merge.c 20.3 KB