diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index d668682f91dfdb3428e02a44df2c8ade9ccf0042..b0e2634545466f4bf2aa7f0ec144002e799288d0 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -908,9 +908,11 @@ static void nvme_complete_cqes(struct nvme_queue *nvmeq, u16 start, u16 end) static inline void nvme_update_cq_head(struct nvme_queue *nvmeq) { - if (++nvmeq->cq_head == nvmeq->q_depth) { + if (nvmeq->cq_head == nvmeq->q_depth - 1) { nvmeq->cq_head = 0; nvmeq->cq_phase = !nvmeq->cq_phase; + } else { + ++nvmeq->cq_head; } }