lkml.org 
[lkml]   [2020]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 106/255] scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
    Date
    From: Sreekanth Reddy <sreekanth.reddy@broadcom.com>

    [ Upstream commit 5feed64f9199ff90c4239971733f23f30aeb2484 ]

    While reenabling the IRQ after irq poll there may be small time window
    where HBA firmware has posted some replies and raise the interrupts but
    driver has not received the interrupts. So we may observe I/O timeouts as
    the driver has not processed the replies as interrupts got missed while
    reenabling the IRQ.

    To fix this issue the driver has to go for one more round of processing the
    reply descriptors from reply descriptor post queue after enabling the IRQ.

    Link: https://lore.kernel.org/r/20201102072746.27410-1-sreekanth.reddy@broadcom.com
    Reported-by: Tomas Henzl <thenzl@redhat.com>
    Reviewed-by: Tomas Henzl <thenzl@redhat.com>
    Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/mpt3sas/mpt3sas_base.c | 7 +++++++
    1 file changed, 7 insertions(+)

    diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
    index e86682dc34eca..87d05c1950870 100644
    --- a/drivers/scsi/mpt3sas/mpt3sas_base.c
    +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
    @@ -1742,6 +1742,13 @@ _base_irqpoll(struct irq_poll *irqpoll, int budget)
    reply_q->irq_poll_scheduled = false;
    reply_q->irq_line_enable = true;
    enable_irq(reply_q->os_irq);
    + /*
    + * Go for one more round of processing the
    + * reply descriptor post queue incase if HBA
    + * Firmware has posted some reply descriptors
    + * while reenabling the IRQ.
    + */
    + _base_process_reply_queue(reply_q);
    }

    return num_entries;
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-17 14:50    [W:4.025 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site