On 11/16/21 11:15 PM, Christoph Hellwig wrote: > On Tue, Nov 16, 2021 at 08:38:05PM -0700, Jens Axboe wrote: >> /** >> * nvme_submit_cmd() - Copy a command into a queue and ring the doorbell >> * @nvmeq: The queue to use >> @@ -511,10 +520,7 @@ static void nvme_submit_cmd(struct nvme_queue *nvmeq, struct nvme_command *cmd, >> bool write_sq) >> { >> spin_lock(&nvmeq->sq_lock); >> - memcpy(nvmeq->sq_cmds + (nvmeq->sq_tail << nvmeq->sqes), >> - cmd, sizeof(*cmd)); >> - if (++nvmeq->sq_tail == nvmeq->q_depth) >> - nvmeq->sq_tail = 0; >> + nvme_copy_cmd(nvmeq, cmd); >> nvme_write_sq_db(nvmeq, write_sq); >> spin_unlock(&nvmeq->sq_lock); > > Given that nvme_submit_cmd only has two callers, I'd be tempted to just > open code in the callers rather than creating a deep callchain here. It's inlined, but if you prefer duplicating the code, then I can just drop this patch. -- Jens Axboe