nvme: Fix spurious interrupts
The code had asserted an interrupt every time it was requested to check for new completion queue entries.This can result in spurious interrupts seen by the guest OS. Fix this by asserting an interrupt only if there are un-acknowledged completion queue entries available. Reported-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Keith Busch <keith.busch@intel.com> Tested-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
330ca111ea
commit
6da021815e
@ -272,7 +272,9 @@ static void nvme_post_cqes(void *opaque)
|
||||
sizeof(req->cqe));
|
||||
QTAILQ_INSERT_TAIL(&sq->req_list, req, entry);
|
||||
}
|
||||
nvme_irq_assert(n, cq);
|
||||
if (cq->tail != cq->head) {
|
||||
nvme_irq_assert(n, cq);
|
||||
}
|
||||
}
|
||||
|
||||
static void nvme_enqueue_req_completion(NvmeCQueue *cq, NvmeRequest *req)
|
||||
|
Loading…
Reference in New Issue
Block a user