• Jason Gunthorpe's avatar
    IB/uverbs: Remove the ib_uverbs_attr pointer from each attr · 6a1f444f
    Jason Gunthorpe authored
    Memory in the bundle is valuable, do not waste it holding an 8 byte
    pointer for the rare case of writing to a PTR_OUT. We can compute the
    pointer by storing a small 1 byte array offset and the base address of the
    uattr memory in the bundle private memory.
    
    This also means we can access the kernel's copy of the ib_uverbs_attr, so
    drop the copy of flags as well.
    
    Since the uattr base should be private bundle information this also
    de-inlines the already too big uverbs_copy_to inline and moves
    create_udata into uverbs_ioctl.c so they can see the private struct
    definition.
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    6a1f444f
uverbs_ioctl.c 16.6 KB