Skip to content
  • Bart Van Assche's avatar
    RDMA, core and ULPs: Declare ib_post_send() and ib_post_recv() arguments const · d34ac5cd
    Bart Van Assche authored
    
    
    Since neither ib_post_send() nor ib_post_recv() modify the data structure
    their second argument points at, declare that argument const. This change
    makes it necessary to declare the 'bad_wr' argument const too and also to
    modify all ULPs that call ib_post_send(), ib_post_recv() or
    ib_post_srq_recv(). This patch does not change any functionality but makes
    it possible for the compiler to verify whether the
    ib_post_(send|recv|srq_recv) really do not modify the posted work request.
    
    To make this possible, only one cast had to be introduce that casts away
    constness, namely in rpcrdma_post_recvs(). The only way I can think of to
    avoid that cast is to introduce an additional loop in that function or to
    change the data type of bad_wr from struct ib_recv_wr ** into int
    (an index that refers to an element in the work request list). However,
    both approaches would require even more extensive changes than this
    patch.
    
    Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
    Reviewed-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    d34ac5cd