[PATCH 2/2] nvme-apple: Prevent tag collision across queues even if tag space is shared
Sven Peter
sven at kernel.org
Sat Jun 6 09:12:28 PDT 2026
On 06.06.26 15:25, Nick Chan wrote:
> From: Yuriy Havrylyuk <yhavry at gmail.com>
>
> Apple NVMe controllers require tags of pending commands to not be shared
> across admin and IO queues. However, on Apple A11 without linear SQ, it is
> not possible for either queue to skip over some tags and must go from 0 to
> the configured maximum before wrapping around.
>
> If a pending command tag is duplicated across queues, the firmware
> crashes with: "duplicate tag error for tag N", with N being the tag.
>
> Instead of partitioning the tag space, which is not possible without
> linear SQ,
Isn't that just what the pci.c driver does with NVME_QUIRK_SHARED_TAGS
for the T2 macs or what we do in this driver with
if (anv->hw->has_lsq_nvmmu)
anv->tagset.reserved_tags = APPLE_NVME_AQ_DEPTH;
?
Sven
More information about the linux-arm-kernel
mailing list