dmaengine: idxd: fix misc interrupt completion
authorDave Jiang <dave.jiang@intel.com>
Fri, 15 Jan 2021 21:52:33 +0000 (14:52 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Feb 2021 10:02:25 +0000 (11:02 +0100)
commitc39cdf559d264f2fb0a450cd5dc18e534732b251
treef0a45defa7a3328f3c18f9780e0ca644bb66bbb1
parent3e53d64e9a4d88226fb1ab55900fe4e89e81df1e
dmaengine: idxd: fix misc interrupt completion

[ Upstream commit f5cc9ace24fbdf41b4814effbb2f9bad7046e988 ]

Nikhil reported the misc interrupt handler can sometimes miss handling
the command interrupt when an error interrupt happens near the same time.
Have the irq handling thread continue to process the misc interrupts until
all interrupts are processed. This is a low usage interrupt and is not
expected to handle high volume traffic. Therefore there is no concern of
this thread running for a long time.

Fixes: 0d5c10b4c84d ("dmaengine: idxd: add work queue drain support")
Reported-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/161074755329.2183844.13295528344116907983.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/idxd/irq.c