On Thu, Jun 17, 2021 at 08:55:42PM +0200, Klaus Jensen wrote:
> From: Klaus Jensen <k.jen...@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.jer...@kernkonzept.com>
> 
> Fixes: ca247d35098d ("hw/block/nvme: fix pin-based interrupt behavior")
> Reported-by: Jakub Jermář <jakub.jer...@kernkonzept.com>
> Signed-off-by: Klaus Jensen <k.jen...@samsung.com>

Looks good.

Reviewed-by: Keith Busch <kbu...@kernel.org>

Reply via email to