[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] hw/nvme: fix pin-based interrupt behavior (again)
From: |
Keith Busch |
Subject: |
Re: [PATCH v2] hw/nvme: fix pin-based interrupt behavior (again) |
Date: |
Mon, 28 Jun 2021 13:35:33 -0700 |
On Thu, Jun 17, 2021 at 08:55:42PM +0200, Klaus Jensen wrote:
> From: Klaus Jensen <k.jensen@samsung.com>
>
> Jakub noticed[1] that, when using pin-based interrupts, the device will
> unconditionally deasssert when any CQEs are acknowledged. However, the
> pin should not be deasserted if other completion queues still holds
> unacknowledged CQEs.
>
> The bug is an artifact of commit ca247d35098d ("hw/block/nvme: fix
> pin-based interrupt behavior") which fixed one bug but introduced
> another. This is the third time someone tries to fix pin-based
> interrupts (see commit 5e9aa92eb1a5 ("hw/block: Fix pin-based interrupt
> behaviour of NVMe"))...
>
> Third time's the charm, so fix it, again, by keeping track of how many
> CQs have unacknowledged CQEs and only deassert when all are cleared.
>
> [1]: <20210610114624.304681-1-jakub.jermar@kernkonzept.com>
>
> Fixes: ca247d35098d ("hw/block/nvme: fix pin-based interrupt behavior")
> Reported-by: Jakub Jermář <jakub.jermar@kernkonzept.com>
> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Looks good.
Reviewed-by: Keith Busch <kbusch@kernel.org>