• Kalderon, Michal's avatar
    RDMA/qedr: Fix doorbell bar mapping for dpi > 1 · 30bf066c
    Kalderon, Michal authored
    Each user_context receives a separate dpi value and thus a different
    address on the doorbell bar. The qedr_mmap function needs to validate
    the address and map the doorbell bar accordingly.
    The current implementation always checked against dpi=0 doorbell range
    leading to a wrong mapping for doorbell bar. (It entered an else case
    that mapped the address differently). qedr_mmap should only be used
    for doorbells, so the else was actually wrong in the first place.
    This only has an affect on arm architecture and not an issue on a
    x86 based architecture.
    This lead to doorbells not occurring on arm based systems and left
    applications that use more than one dpi (or several applications
    run simultaneously ) to hang.
    
    Fixes: ac1b36e5 ("qedr: Add support for user context verbs")
    Signed-off-by: default avatarAriel Elior <Ariel.Elior@cavium.com>
    Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
    Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    30bf066c
verbs.c 100 KB