nvme-apple: add NVME_QUIRK_IDENTIFY_CNS quirk to fix regression
authorHector Martin <marcan@marcan.st>
Wed, 4 Jan 2023 09:21:49 +0000 (18:21 +0900)
committerChristoph Hellwig <hch@lst.de>
Tue, 10 Jan 2023 07:15:03 +0000 (08:15 +0100)
commitaa96d6aa7563ec2948195d1f5892cb7a2caa88e3
treeacd56e86130df6af08d10d1339f1049614640899
parent49e4d04f0486117ac57a97890eb1db6d52bf82b3
nvme-apple: add NVME_QUIRK_IDENTIFY_CNS quirk to fix regression

From the get-go, this driver and the ANS syslog have been complaining
about namespace identification. In 6.2-rc1, commit 811f4de0344d ("nvme:
avoid fallback to sequential scan due to transient issues") regressed
the driver by no longer allowing fallback to sequential namespace scans,
leaving us with no namespaces.

It turns out that the real problem is that this controller claiming
NVMe 1.1 compat is treating the CNS field as a binary field, as in NVMe
1.0. This already has a quirk, NVME_QUIRK_IDENTIFY_CNS, so set it for
the controller to fix all this nonsense (including other errors
triggered by other CNS commands).

Fixes: 811f4de0344d ("nvme: avoid fallback to sequential scan due to transient issues")
Fixes: 5bd2927aceba ("nvme-apple: Add initial Apple SoC NVMe driver")
Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/apple.c