]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nvme-apple: Reset q->sq_tail during queue init
authorNick Chan <towinchenmi@gmail.com>
Thu, 14 May 2026 13:16:01 +0000 (21:16 +0800)
committerKeith Busch <kbusch@kernel.org>
Thu, 14 May 2026 14:40:35 +0000 (07:40 -0700)
Fixes a "duplicate tag error for tag 0" firmware crash during controller
reset while setting up a  queue on Apple A11 / T8015 caused by stale
entries in the submission queue due to an invalid sq_tail offset after
reset.

Fixes: 04d8ecf37b5e ("nvme: apple: Add Apple A11 support")
Cc: stable@vger.kernel.org
Suggested-by: Yuriy Havrylyuk <yhavry@gmail.com>
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Nick Chan <towinchenmi@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/apple.c

index 423c9c628e7bfa769070aed3ca221c111c020678..c692fc73babfe53d8f35d88a099bbe51d3542c73 100644 (file)
@@ -1009,6 +1009,7 @@ static void apple_nvme_init_queue(struct apple_nvme_queue *q)
        unsigned int depth = apple_nvme_queue_depth(q);
        struct apple_nvme *anv = queue_to_apple_nvme(q);
 
+       q->sq_tail = 0;
        q->cq_head = 0;
        q->cq_phase = 1;
        if (anv->hw->has_lsq_nvmmu)