[PATCH] nvme: avoid cqe corruption when update at the same time as read

Christoph Hellwig hch at infradead.org
Thu Mar 10 06:36:50 PST 2016


On Thu, Mar 10, 2016 at 12:08:48PM +0100, Marta Rybczynska wrote:
> Looks like a good refactoring to me. However, it seems to me that in
> nvme_cqe_valid we should be checking for phase, not for head.

Yeah, this doesn't work as-is.  I still think that non-obvious
check should be split out into something.  Maybe just:

static inline bool nvme_cqe_valid(struct nvme_queue *nvmeq, u16 head, u16 phase)
{
	return (le16_to_cpu(nvmeq->cqes[head].status) & 1) == phase;
}



More information about the Linux-nvme mailing list