• Harish Chegondi's avatar
    IB/hfi1: Fix the count of user packets submitted to an SDMA engine · 0b115ef1
    Harish Chegondi authored
    Each user SDMA request coming into the driver may contain multiple packets.
    Each user packet may use multiple SDMA descriptors to fill the send buffer.
    The field seqsubmitted in struct user_sdma_request counts the number of
    user packets submitted to an SDMA engine. Sometimes, the intermediate count
    may not be updated properly. However, once all the packets' descriptors
    are successfully submitted to the SDMA engine, the final count is updated
    correctly. But, if only some of the packets are submitted to the engine due
    to an error, the intermediate count doesn't reflect the partial number of
    packets submitted to the SDMA engine. This can cause a hang later in the
    code as the count of packets submitted to the SDMA engine doesn't match the
    the count of packets processed by the SDMA engine.
    Reviewed-by: default avatarDean Luick <dean.luick@intel.com>
    Signed-off-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
    Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    0b115ef1
user_sdma.c 46.5 KB